如何合并pandas导入CSV时被自动加后缀的重复列为逗号分隔字符串
实现步骤
- 导入CSV文件后,先还原列的原始名称:pandas自动添加的
.#后缀可以通过从右侧按.分割1次提取前缀实现还原。 - 按还原后的原始列名对列进行分组,逐行合并同组列的内容为逗号分隔的字符串。
完整代码示例
import pandas as pd # 1. 导入CSV文件 df = pd.read_csv('myfile.csv', delimiter=';') # 2. 还原原始列名,去掉自动生成的.#后缀 original_col_names = df.columns.str.rsplit('.', n=1).str[0] # 3. 按原始列名分组,逐行合并同列名的内容 df_result = df.groupby(original_col_names, axis=1).agg( lambda group: group.apply( # 逐行拼接,自动跳过空值,不需要可以删除.dropna() lambda row: ','.join(row.dropna().astype(str)), axis=1 ) ) # 查看结果 print(df_result)
效果验证
针对你提供的示例CSV,输出结果如下:
| data1 | data2 | A | B | C |
|---|---|---|---|---|
| abc | text1 | text2,text3 | text4,text5 | |
| def | 456 | text2 | text4,text3 | text5,text1 |
如果需要保留空值转为字符串输出,直接删除代码中的.dropna()即可。
内容的提问来源于stack exchange,提问作者HackXIt
相关产品推荐
相关产品推荐

