Python处理CSV相同表头多列合并为单列的技术需求
解决CSV文件中重复列名的堆叠问题
针对你有22行、6500列且包含大量重复列名的企业数据CSV,要把相同表头的列按对应关系堆叠成单独列的需求,可以用Pandas快速实现:
代码实现
import pandas as pd # 读取原始CSV,保留重复列名(避免自动添加后缀) df = pd.read_csv('your_file.csv', mangle_dupe_cols=False) # 获取所有唯一列名 unique_headers = df.columns.unique() # 对每个唯一表头,将所有同名列堆叠为单列 processed_columns = [] for header in unique_headers: # 提取所有同名列,堆叠后重置索引 stacked_col = df[header].stack().reset_index(drop=True) processed_columns.append(stacked_col) # 合并处理后的列,生成最终DataFrame final_df = pd.concat(processed_columns, axis=1) final_df.columns = unique_headers # 保存结果到新CSV(可选) final_df.to_csv('stacked_result.csv', index=False)
逻辑说明
- 读取文件:用
mangle_dupe_cols=False保留原始重复列名,防止Pandas自动给重复列添加.1.2这类后缀。 - 堆叠列:对每个唯一表头,提取所有同名列,通过
stack()将这些列纵向堆叠成一列,再重置索引保证连续。 - 合并列:把所有堆叠后的单列合并,恢复原始表头名,得到目标格式的结构。
内容的提问来源于stack exchange,提问作者lordjolderoi
相关产品推荐
相关产品推荐

