listdataframe某列是list分别转化成每个list包含元素的列
时间: 2023-08-09 17:11:21 浏览: 94
假设你有一个名为`df`的DataFrame,其中有一个名为`my_list_column`的列,其值为列表。你可以使用`explode`方法将每个列表中的元素分别转换为行,并创建一个新列来保存它们所属的原始列表。然后,你可以使用`pivot_table`方法将这些行转换回列:
```
import pandas as pd
# 构造示例DataFrame
df = pd.DataFrame({
'id': [1, 2, 3],
'my_list_column': [
['a', 'b', 'c'],
['d', 'e'],
['f', 'g', 'h', 'i']
]
})
# 使用explode方法将列表中的元素分别转换为行,并创建一个新列来保存它们所属的原始列表
df_exploded = df.explode('my_list_column').reset_index()
# 使用pivot_table方法将这些行转换回列
df_pivoted = pd.pivot_table(df_exploded, index='index', columns='my_list_column', values='my_list_column', aggfunc='count')
# 重新设置列名
df_pivoted.columns.name = None
# 打印结果
print(df_pivoted)
```
输出结果应该类似于:
```
a b c d e f g h i
0 1.0 1.0 1.0 NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN 1.0 1.0 NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN 1.0 1.0 1.0 1.0
```
在这个输出中,行表示原始DataFrame中的行,列表示每个唯一的列表元素,单元格中的值表示该元素在该行的列表中出现的次数。如果某一行中没有某个元素,则对应单元格的值为NaN。
阅读全文