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

如何合并含NaN值的DataFrame两列,仅两列均非空时拼接内容

合并Pandas DataFrame两列生成符合规则的result列的解决方案

方法1:使用str.cat方法(最简洁,原生匹配规则)

Pandas的字符串拼接方法str.cat默认逻辑为:只要参与拼接的任意一方为NaN,返回结果就为NaN,刚好符合需求。
示例代码:

import pandas as pd
import numpy as np

# 构造测试数据
df = pd.DataFrame({
    'c1': ['a', 'b', np.nan, np.nan],
    'c2': [np.nan, 'c', 'd', np.nan]
})

# 生成result列
df['result'] = df['c1'].str.cat(df['c2'], sep=' ')

方法2:使用np.where显式判断(可读性更高,方便后续调整规则)

先显式判断两列同时非空,满足条件则拼接,否则返回NaN:

df['result'] = np.where(
    df[['c1', 'c2']].notna().all(axis=1),
    df['c1'] + ' ' + df['c2'],
    np.nan
)

两种方法运行后得到的结果和示例完全一致:

indexc1c2result
1aNaNNaN
2bcb c
3NaNdNaN
4NaNNaNNaN

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:57:04