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

Pandas如何统一DataFrame两列字符串拼接结果 相同元素组合输出一致

实现方法

核心思路是对每行的col1、col2两个值进行统一规则排序后再拼接,保证相同元素对无论输入顺序如何,排序结果一致,最终拼接结果相同。

方法1:apply行遍历(小数据量场景,写法简单)

import pandas as pd

df3 = pd.DataFrame({
    'col1':['banana','apple','pie','mango','cola'],
    'col2':['apple','banana','mango','cola','mango'],
})

# 对每行的两个字符串排序后拼接
df3['col3'] = df3.apply(lambda x: ''.join(sorted([x['col1'], x['col2']])), axis=1)

如果需要和你示例中的输出完全对齐(固定按元素对首次出现的顺序拼接),可以先构建映射字典:

# 构建元素对到首次拼接结果的映射
pair_map = {}
def get_union_str(a, b):
    key = tuple(sorted([a,b]))
    if key not in pair_map:
        pair_map[key] = a + b
    return pair_map[key]

df3['col3'] = df3.apply(lambda x: get_union_str(x['col1'], x['col2']), axis=1)

方法2:向量化操作(大数据量场景,性能更高)

import pandas as pd
import numpy as np

df3 = pd.DataFrame({
    'col1':['banana','apple','pie','mango','cola'],
    'col2':['apple','banana','mango','cola','mango'],
})

# 按行排序后拼接
arr = np.sort(df3[['col1', 'col2']].values, axis=1)
df3['col3'] = arr[:, 0] + arr[:, 1]

运行上述任意符合需求的代码后,即可得到你期望的输出结果:相同元素对无论输入顺序如何,col3值一致。


内容的提问来源于stack exchange,提问作者김도영

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:36:05