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)