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

Pandas合并两列且保留行内唯一值、自动去重的实现问题

首先给出测试数据构造代码:

import pandas as pd

df = pd.DataFrame({
    'foodstuff':['apple-martini', 'apple-pie', None, 'dessert', None],
    'type':[None, None, 'strawberry-tart', 'dessert', None]
})

方法1:最高效实现(适配需求场景)

优先取foodstuff列的非空值,若为空则取type列值,两列值重复时会自动保留一个,无需额外去重操作,性能远高于行遍历方案:

df['Combined'] = df['foodstuff'].fillna(df['type'])
# 仅保留Combined列的话可以加这行
df = df[['Combined']]

方法2:通用多列合并方案

如果后续需要合并更多列,且要自动对行内非空重复值去重,可以用以下写法:

df['Combined'] = df.apply(
    lambda row: next(iter(set(row.dropna())), None),
    axis=1
)

运行后得到的结果如下:

Combined
0    apple-martini
1        apple-pie
2  strawberry-tart
3          dessert
4             None

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:45:02