如何将pandas DataFrame多列的列表值拆分扩展为多个独立列
pandas多列列表元素拆分实现方案
核心实现思路
- 逐列处理原始数据,先将单元格内的列表元素展开
- 拆分列表内逗号分隔的字符串为独立列
- 合并所有拆分后的结果后统一重命名列名
实现代码
导入依赖:
import pandas as pd
构造示例数据:
df1 = pd.DataFrame( { "column0": [["xx, aa", "xx, aa"]], "column1": [["yy, bb","yy, aa"]], "column2": [["cc, xx", "cc, xx"]] } )
核心处理逻辑:
split_res = [] for col in df1.columns: # 展开列内列表元素 explode_col = df1[col].explode() # 拆分逗号分隔的字符串为多列,自动去除逗号后空格 split_col = explode_col.str.split(", ", expand=True) split_res.append(split_col) # 拼接所有拆分后的列 final_df = pd.concat(split_res, axis=1) # 按顺序统一重命名列 final_df.columns = [f"column{i}" for i in range(len(final_df.columns))]
效果说明
运行后final_df即为你需要的拆分结果,和你给出的预期输出完全一致。如果原始数据为多行时,该逻辑同样适用,会逐行完成对应拆分。
内容的提问来源于stack exchange,提问作者xavi
相关产品推荐
相关产品推荐

