dataframe某列为list,将它转化成包含所有list的元素为列名的新dataframe,举个例
时间: 2023-11-27 17:06:17 浏览: 70
Pandas库之DataFrame使用的学习笔记
假设我们有以下的数据框,其中 "list_col" 是一个包含列表的列:
```
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]
```
我们可以使用 Pandas 的 `apply(pd.Series)` 方法来将列表展开为列名,并将每个元素填充到相应的列中。然后,我们可以使用 `concat` 函数将这些新列连接到原始数据框中:
```
new_df = pd.concat([df["id"], df["list_col"].apply(pd.Series)], axis=1)
new_df.columns = ["id"] + [f"col_{i}" for i in range(new_df.shape[1]-1)]
print(new_df)
```
输出:
```
id col_0 col_1 col_2
0 1 a b None
1 2 c d e
2 3 f None None
```
在这个新的数据框中,每个列表中的元素被展开成了一个新的列,列名由原始列表中的元素组成。如果一个列表中的元素数量少于最长的列表,那么缺失的列将被填充为 `None`。
阅读全文