dataframe某列为list,将它转化成包含所有list中的元素,且这些元素为列名的新dataframe,举个例
时间: 2023-11-27 08:04:29 浏览: 51
DataFrame 将某列数据转为数组的方法
5星 · 资源好评率100%
如果你有一个名为df的DataFrame,其中有一个名为list_col的列,它包含列表值,你可以通过以下方式将它转化成一个新的DataFrame。
假设你有如下的DataFrame:
```
import pandas as pd
df = pd.DataFrame({'ID': [1, 2, 3], 'list_col': [['a', 'b'], ['c', 'd', 'e'], ['f']]})
print(df)
```
输出结果为:
```
ID list_col
0 1 [a, b]
1 2 [c, d, e]
2 3 [f]
```
现在你想将list_col中的元素转化成列名,生成一个新的DataFrame,你可以使用以下代码:
```
new_df = pd.DataFrame(df['list_col'].values.tolist(), columns=['col_'+str(i) for i in range(df['list_col'].apply(len).max())])
print(new_df)
```
输出结果为:
```
col_0 col_1 col_2
0 a b None
1 c d e
2 f None None
```
这里我们使用了`df['list_col'].values.tolist()`将list_col列中的所有列表转换成列表,并且使用apply函数计算了列表中最大的元素个数,根据这个最大值生成了新的列名,然后使用这些列名创建了一个新的DataFrame。
阅读全文