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

Pandas中拼接DataFrame仅含有效值列的实现问题

解决DataFrame拼接有效列值(跳过空值)的问题

我来帮你搞定这个需求!你想要拼接DataFrame中每行的非空列值,同时避免直接拼接带来的多余逗号或空白。下面是两种实用的解决方案:

方法一:apply+dropna简洁写法

这是最直接的实现方式,逐行处理数据,自动过滤空值后再拼接:

import pandas as pd

# 创建你的示例DataFrame
df = pd.DataFrame({
    'Num': [1, 2],
    'Country': ['USA', pd.NA],
    'City': [pd.NA, 'Philly']
})

# 生成Total列:每行仅保留非空值,转字符串后用逗号拼接
df['Total'] = df.apply(lambda x: ','.join(x.dropna().astype(str)), axis=1)

方法二:自定义函数(更易扩展)

如果后续需要调整拼接规则(比如更换分隔符、过滤特定值),可以写一个自定义函数,灵活性更高:

def join_non_null(row, sep=','):
    # 遍历行内元素,仅保留非空值并转为字符串
    valid_items = [str(item) for item in row if pd.notna(item)]
    return sep.join(valid_items)

# 将函数应用到DataFrame每行
df['Total'] = df.apply(join_non_null, axis=1)

最终效果

运行上述代码后,你的DataFrame会得到预期结果:

NumCountryCityTotal
1USANaN1,USA
2NaNPhilly2,Philly

完美避开了多余的逗号和空白字符!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:29:20