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

Pandas合并列丢失数据:如何保留无对应Country的Description值?

DataFrame列拼接空值保留解决方案

问题原因

你当前的拼接代码在Country列值为NaN(空值)时,会导致整个拼接结果变为NaN,进而丢失Description列的内容——这是因为pandas中NaN与任何字符串拼接都会返回NaN。

解决方法

下面提供三种实用的实现方式:

方法1:用fillna填充空值后拼接

先把Country列的空值替换为空字符串,拼接后再去除多余的首尾空格:

Transactions["CountryAProvider"] = (Transactions["Country"].fillna("") + " " + Transactions["Description"].astype(str)).str.strip()
  • 优势:代码简洁,无需额外导入库
  • str.strip()的作用:避免Country为空时,拼接结果开头出现多余空格

方法2:用str.cat方法直接处理

pandas的str.cat原生支持空值处理,指定na_rep参数为空字符串即可:

Transactions["CountryAProvider"] = Transactions["Country"].str.cat(Transactions["Description"].astype(str), sep=" ", na_rep="").str.strip()
  • 优势:专为字符串拼接设计,逻辑更清晰

方法3:用numpy.where做条件判断

直接通过条件分支处理两种情况,逻辑最直观:

import numpy as np
Transactions["CountryAProvider"] = np.where(
    Transactions["Country"].notna(),  # 判断Country是否非空
    Transactions["Country"] + " " + Transactions["Description"].astype(str),  # 非空时拼接
    Transactions["Description"].astype(str)  # 空值时直接取Description
)
  • 优势:对新手友好,条件逻辑一目了然

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 11:35:13