當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。