当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pandas.DataFrame.explode用法及代码示例


用法:

DataFrame.explode(column, ignore_index=False)

将 list-like 的每个元素转换为一行,复制索引值。

参数

column索引标签

要爆炸的列。对于多列,指定一个非空列表,每个元素为str或tuple,并且所有指定列的list-like数据在框架的同一行必须具有匹配的长度。

ignore_index布尔值,默认为 False

如果为 True,则生成的索引将标记为 0、1、...、n - 1。

返回

DataFrame

分解列表到子集列的行;这些行的索引将被复制。

抛出

ValueError:
  • 如果框架的列不是唯一的。

  • 如果要爆炸的指定列是空列表。

  • 如果要爆炸的指定列在框架中按行排列的元素数量不匹配。

注意

此例程将爆炸list-likes,包括列表、元组、集合、系列和 np.ndarray。子集行的结果 dtype 将是对象。标量将原封不动地返回,空的 list-likes 将导致该行的 np.nan 。此外,当爆炸集合时,输出中行的顺序将是不确定的。

有关更多示例,请参阅用户指南。

例子

>>> df = pd.DataFrame({'A':[[0, 1, 2], 'foo', [], [3, 4]],
...                    'B':1,
...                    'C':[['a', 'b', 'c'], np.nan, [], ['d', 'e']]})
>>> df
           A  B          C
0  [0, 1, 2]  1  [a, b, c]
1        foo  1        NaN
2         []  1         []
3     [3, 4]  1     [d, e]

Single-column 爆炸。

>>> df.explode('A')
     A  B          C
0    0  1  [a, b, c]
0    1  1  [a, b, c]
0    2  1  [a, b, c]
1  foo  1        NaN
2  NaN  1         []
3    3  1     [d, e]
3    4  1     [d, e]

Multi-column 爆炸。

>>> df.explode(list('AC'))
     A  B    C
0    0  1    a
0    1  1    b
0    2  1    c
1  foo  1  NaN
2  NaN  1  NaN
3    3  1    d
3    4  1    e

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.DataFrame.explode。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。