pandas.DataFrame.explode() 方法用于将 DataFrame 中的列中的每个元素展开为单独的行。这个方法主要用于处理包含列表或其他可迭代对象的列,将它们展开成多个行,而列的其他元素保持不变。本文主要介绍一下Pandas中pandas.DataFrame.explode方法的使用。

DataFrame.explode(self, column: Union[str, Tuple])  [源代码]

将类似列表的每个元素转换为一行,从而复制索引值。

0.25.0版中的新功能。

参数

column : str或tuple

返回值

DataFrame

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

Raises

ValueError

如果框架的列不是唯一的。

Notes

此例程将爆炸类似列表的事件,包括列表,元组,系列和np.ndarray。子集行的结果dtype将为object。标量将保持不变。空的类似列表将导致该行的np.nan

例子

1)使用 explode 方法处理包含列表、字符串和空列表的数据

import pandas as pd

# 创建 DataFrame
df = pd.DataFrame({'A': [[1, 2, 3], 'foo', [], [3, 4]], 'B': 1})

# 打印原始 DataFrame
print("原始 DataFrame:")
print(df)

# 使用 explode 展开 'A' 列
df_exploded = df.explode('A')

# 打印展开后的 DataFrame
print("\n展开后的 DataFrame:")
print(df_exploded)

2)将其中的列表展开成单独的行

import pandas as pd

# 创建一个包含列表的 DataFrame
data = {
    'A': ['A0', 'A1', 'A2'],
    'B': [[1, 2, 3], [4, 5], [6]]
}

df = pd.DataFrame(data)

print("原始 DataFrame:")
print(df)

# 使用 explode 展开 'B' 列
exploded_df = df.explode('B')

print("\n展开后的 DataFrame:")
print(exploded_df)

推荐文档

相关文档

大家感兴趣的内容

随机列表