在Pandas中如何横向交错拼接列名相同的两个数据集?
实现两个同列名CSV的交错横向拼接
直接用pd.concat默认会把一个文件的所有列放在另一个后面,要实现交错排列可以按以下步骤操作:
1. 读取CSV文件
先把两个文件读成DataFrame:
import pandas as pd df_a = pd.read_csv('A.csv') df_b = pd.read_csv('B.csv')
2. 给列名添加区分后缀
因为两个文件列名完全一致,拼接后会出现重复列名,先给各自的列加上专属后缀,方便后续排序:
df_a = df_a.add_suffix('_A') df_b = df_b.add_suffix('_B')
3. 生成交错列顺序
遍历原始列名,依次将A和B的对应列加入新的列列表:
# 自动获取原始列名(从处理后的df_a中提取) original_cols = df_a.columns.str.replace('_A', '') # 用列表推导式快速生成交错列 interleaved_cols = [col for pair in zip(df_a.columns, df_b.columns) for col in pair]
4. 拼接并重排列
先横向拼接两个DataFrame,再按生成的交错列顺序重新排列:
combined_df = pd.concat([df_a, df_b], axis=1) final_df = combined_df[interleaved_cols]
5. 保存结果
把最终的DataFrame保存为新的CSV文件:
final_df.to_csv('C.csv', index=False)
如果你的列名是固定的(比如就是Col1、Col2、Col3),也可以直接手动写交错列列表:
interleaved_cols = ['Col1_A', 'Col1_B', 'Col2_A', 'Col2_B', 'Col3_A', 'Col3_B']
内容的提问来源于stack exchange,提问作者totochan1965
相关产品推荐
相关产品推荐

