如何在DataFrame中针对含逗号分隔值的列拆分生成新行?
解决DataFrame中逗号分隔列的拆分换行问题
原始数据
name col1 col2 col3 bob bird 78 1000 alice cat 55 500,600,700 rob dog 333 20,30
期望结果
name col1 col2 col3 bob bird 78 1000 alice cat 55 500 alice cat 55 600 alice cat 55 700 rob dog 333 20 rob dog 333 30
解决方案(Pandas实现)
用Pandas的字符串拆分和行展开方法就能快速实现需求:
- 构造原始DataFrame(数据已存在可跳过此步)
import pandas as pd df = pd.DataFrame({ 'name': ['bob', 'alice', 'rob'], 'col1': ['bird', 'cat', 'dog'], 'col2': [78, 55, 333], 'col3': ['1000', '500,600,700', '20,30'] })
- 拆分并展开目标列
# 将col3按逗号拆分为列表格式 df['col3'] = df['col3'].str.split(',') # 把列表中的每个元素单独拆成一行,同时重置索引 result_df = df.explode('col3', ignore_index=True) # 可选操作:将col3转回数值类型(根据实际数据需求选择) result_df['col3'] = result_df['col3'].astype(int)
执行后得到的result_df就是符合要求的DataFrame。
内容的提问来源于stack exchange,提问作者dmd7
相关产品推荐
相关产品推荐

