pandas某列数据是个列表,列表里3个元素,如何分列为三列数据、列名自定义
时间: 2023-12-25 12:05:58 浏览: 59
pandas将list数据拆分成行或列.ipynb
可以使用 `pandas.DataFrame` 的 `apply` 方法和 `pandas.Series` 的 `apply(pd.Series)` 方法将列表中的元素展开成三列数据。下面是一个示例代码:
```python
import pandas as pd
# 创建一个包含列表数据的 DataFrame
df = pd.DataFrame({'col1': [['a', 'b', 'c'], ['d', 'e', 'f']]})
# 使用 apply 方法和 apply(pd.Series) 方法分列并自定义列名
df[['new_col1', 'new_col2', 'new_col3']] = df['col1'].apply(lambda x: pd.Series(x)).rename(columns={0: 'new_col1', 1: 'new_col2', 2: 'new_col3'})
# 输出结果
print(df)
```
输出结果:
```
col1 new_col1 new_col2 new_col3
0 [a, b, c] a b c
1 [d, e, f] d e f
```
在上面的示例代码中,我们首先使用 `apply` 方法将每个列表中的元素传递给一个 lambda 函数,该函数使用 `pd.Series` 将列表中的元素展开成三列数据。然后我们使用 `rename` 方法为新生成的三列数据自定义列名,最后使用 `df[['new_col1', 'new_col2', 'new_col3']]` 将新生成的三列数据添加到原 DataFrame 中。
阅读全文