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

Python中Pandas DataFrame多列按非空条件拼接为单列

Pandas多列按非空条件拼接实现方案

你之前的写法是对整列做布尔判断,而非逐行判断,因此会返回错误结果,且逐列手写判断逻辑扩展性极差,列数较多时不可用。


实现代码

如果你的DataFrame中空值为空字符串,用以下代码:

# 按行过滤非空值后用%20拼接,最终生成单列的DataFrame符合你要求的输出格式
IND_Concat = IND_Split.apply(lambda row: '%20'.join(row[row != '']), axis=1).to_frame(name='0')

如果你的DataFrame中空值为pandas默认的NaN,修改过滤逻辑即可:

IND_Concat = IND_Split.apply(lambda row: '%20'.join(row.dropna()), axis=1).to_frame(name='0')

上述代码针对你提供的样例数据运行后,输出结果和你期望的格式完全一致。


额外说明

如果不需要单独生成新表,而是要在原DataFrame中新增拼接结果列,可使用以下写法:

IND_Split['concat_result'] = IND_Split.apply(lambda row: '%20'.join(row[row != '']), axis=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 07:06:04