You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何合并名称相似的多列?含空值的批量列合并方法

批量合并名称相似的列(含空值处理)

解决方案(基于Pandas)

假设你使用Python的Pandas库处理表格数据,可按以下步骤批量合并这类名称相似的列:

  1. 筛选目标列
    先从DataFrame中筛选出所有符合命名规则的列,针对scheduleSettings_nodes_0_name、scheduleSettings_nodes_1_name这类列,可用正则匹配精准筛选:

    import pandas as pd
    
    # 假设数据存储在df中
    # 正则匹配:匹配以scheduleSettings_nodes_开头、中间是数字、以_name结尾的列
    target_cols = df.columns[df.columns.str.match(r'scheduleSettings_nodes_\d+_name')]
    # 若命名规则唯一,也可简化为模糊筛选
    # target_cols = df.filter(like='scheduleSettings_nodes_').columns
    
  2. 合并列并处理空值
    对每行的目标列过滤空值(None/NaN),将非空值用逗号拼接成字符串:

    # 生成合并后的新列
    df['scheduleSettings_nodes_name'] = df[target_cols].apply(
        lambda row: ', '.join(row.dropna().astype(str)),
        axis=1
    )
    
  3. (可选)删除原目标列
    若无需保留原85个列,可批量删除:

    df = df.drop(columns=target_cols)
    

示例验证

用你给出的测试数据验证逻辑:

# 构造示例数据
data = {
    'apple_0': ['abc', 'abc', 'hig', 'dsf'],
    'apple_1': [None, 'efg', None, None],
    'other_col': ['x', 'y', 'z', 'w']  # 混杂的其他列
}
df = pd.DataFrame(data)

# 筛选目标列
target_cols = df.columns[df.columns.str.match(r'apple_\d+')]
# 合并列
df['apple'] = df[target_cols].apply(lambda row: ', '.join(row.dropna().astype(str)), axis=1)
# 删除原列
df = df.drop(columns=target_cols)

print(df)

输出结果:

other_col      apple
0         x        abc
1         y  abc, efg
2         z        hig
3         w        dsf

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 23:54:42