You need to enable JavaScript to run this app. pandas实现除首列外的相邻列两两拼接(双列连接)
优惠活动
大模型
产品
解决方案
定价
更多

pandas实现除首列外的相邻列两两拼接(双列连接)

Pandas实现相邻列两两拼接操作

核心实现逻辑

操作全程不改动第一列原始内容,将剩余列按从左到右的顺序,每两个相邻列归为一组,逐行完成字符串拼接,最后将拼接后的列与保留的第一列合并为最终结果。

具体代码实现

  1. 拆分原始数据
    将DataFrame拆分为需原样保留的首列、待拼接的剩余序列列两个独立部分:
    import pandas as pd
    # 保留第一列所有原始内容
    keep_first_col = df.iloc[:, [0]]
    # 提取剩余需要处理的列
    process_cols = df.iloc[:, 1:]
    
  2. 逐组完成相邻列拼接
    以2为步长遍历待处理列,每取到两个相邻列就按行执行字符串连接,收集所有拼接完成的列:
    combined_columns = []
    for start_pos in range(0, process_cols.shape[1], 2):
        # 显式转字符串避免数值类型运算干扰
        new_col = process_cols.iloc[:, start_pos].astype(str) + process_cols.iloc[:, start_pos+1].astype(str)
        combined_columns.append(new_col)
    # 将所有拼接后的列组合为新的DataFrame
    combined_df = pd.concat(combined_columns, axis=1)
    
  3. 合并得到最终结果
    将最初保留的首列与拼接完成的列对齐合并,重置索引避免错位:
    final_df = pd.concat([
        keep_first_col.reset_index(drop=True),
        combined_df.reset_index(drop=True)
    ], axis=1)
    

运行效果

使用题干给出的测试数据运行上述代码,输出结果完全匹配目标格式:

ADP_4   GG  GC  GG  GG  GA
ADP_5   GG  GA  GG  GG  GA
ADP_3   GG  GC  GG  GG  GA

边界情况处理

  • 若待处理的列数为奇数,可在循环末尾增加判断逻辑,将最后无法凑对的单列直接加入结果,避免索引越界报错
  • 拼接前强制转换为字符串类型,可避免列存储为数值类型时,拼接操作变成算术加法的问题

内容的提问来源于stack exchange,提问作者Siavash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.04 01:45:04