如何在Pandas中将含列表的列拆分为可变数量的列?
Pandas 列表列拆分至多列解决方案
步骤说明与代码实现
- 构造示例DataFrame(已有数据可跳过此步):
import pandas as pd df = pd.DataFrame({ 'Birth_Year': [1964, 1965, 1964], 'Name': [['X', 'Y'], ['A', 'B'], ['F', 'G', 'H']] })
- 计算
Name列中列表的最大长度:
max_name_length = df['Name'].apply(len).max()
- 将
Name列的列表拆分为多列:
split_names = df['Name'].apply(pd.Series)
- 合并原
Birth_Year列与拆分后的列:
final_df = pd.concat([df['Birth_Year'], split_names], axis=1)
- 重命名拆分后的列,使其符合
Name_1、Name_2的格式:
final_df.columns = ['Birth_Year'] + [f'Name_{i+1}' for i in range(max_name_length)]
执行完上述代码后,final_df的结构将与需求中的目标格式完全一致。
内容的提问来源于stack exchange,提问作者Mike L
相关产品推荐
相关产品推荐

