如何使用Pandas按单元格逗号分隔多值拆分复制数据行
Pandas 逗号分隔单元格拆分为独立行实现方案
你最初写的逐行循环遍历判断逗号的思路逻辑上可行,但手动做行捕获、原值修改、新行插入的代码冗余度高,且数据量较大时运行效率很差,直接用Pandas内置的向量化方法就能几行代码实现需求,性能远高于手写循环。
具体实现步骤
- 读取csv源数据
- 对
column2列按逗号做拆分,同时清理拆分后每个值前后的多余空格,避免出现带首尾空格的脏值 - 调用
explode方法将拆分得到的列表值展开为独立行,其他列(如column1)的取值会自动和拆分后的值对应匹配,完全符合预期输出要求
可直接运行的代码
import pandas as pd # 替换为你实际的csv文件路径 df = pd.read_csv("your_file_path.csv") # 可选:提前将column2统一转为字符串,避免空值、数字类型导致split报错 df["column2"] = df["column2"].astype(str) # 按逗号拆分值,同时清理每个值的首尾空白 df["column2"] = df["column2"].str.split(",").map(lambda val_list: [val.strip() for val in val_list]) # 将拆分后的列表展开为独立行,重置索引 df = df.explode("column2", ignore_index=True)
效果验证
用你给出的样例数据运行上述代码,得到的输出完全匹配预期:
| column1 | column2 |
|---|---|
| value | value |
| value | value1 |
| value | value2 |
| value | value |
该实现没有硬编码“仅拆分2个值”的逻辑,哪怕单个单元格内有3个及以上逗号分隔的值,也能自动拆分为对应数量的行,通用性更强。
内容的提问来源于stack exchange,提问作者rootoor
相关产品推荐
相关产品推荐

