如何提取pandas DataFrame列表列的元素并拆分为多个独立列
解决方案
有两种常用的实现方式,你可以根据数据规模选择:
方法1:高性能实现(推荐,适配全量数据规模)
将nums列的列表转为二维列表后构建新DataFrame,直接和原表拼接即可:
# 拆分nums列为3个独立列 df[['num1', 'num2', 'num3']] = pd.DataFrame(df['nums'].tolist(), index=df.index) # 不需要原nums列可以执行下方代码移除 df = df.drop(columns=['nums'])
特点:性能优异,逻辑清晰,是工业级代码的常用写法。
方法2:极简写法(适合小数据集快速调试)
用apply方法直接把每行列表转为Series自动匹配列:
# 拆分nums列为3个独立列 df[['num1', 'num2', 'num3']] = df['nums'].apply(pd.Series) # 不需要原nums列可以执行下方代码移除 df = df.drop(columns=['nums'])
特点:写法非常简洁,但数据量超过10万行时性能会明显低于方法1。
注意事项
请确保nums列每一行的列表长度都为3,否则拆分后会出现空值或者列数不符的问题。
内容的提问来源于stack exchange,提问作者IamWarmduscher
相关产品推荐
相关产品推荐

