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

如何拼接Series字符串并过滤None、NaN值,使用加号连接有效内容

解决方案

你可以通过以下两种方式实现需求:


方案1:最小改动原有代码

只需要修改拼接时的lambda逻辑,过滤掉无效值即可:

import pandas as pd

x1=x.str.split(pat='/').str[0].copy()
x2=x1.str.split(expand=True).copy()
# 过滤掉NaN、None以及转字符串后为'None'/'nan'的空值
x2['combined']=x2[x2.columns].apply(lambda row: '+'.join([v for v in row.values if pd.notna(v) and str(v).strip() not in ('None', 'nan', '')]), axis=1)
print(x2['combined'])

方案2:更简洁的高性能写法

不需要将split结果展开为DataFrame,直接对分割后的列表做处理,从根源避免生成补位的None/NaN:

x1 = x.str.split('/').str[0].copy()
# 按空格分割后直接过滤有效内容拼接
result = x1.str.split().apply(lambda item: '+'.join([i for i in item if i.strip()]))
print(result)

原有代码出现多余None/NaN的原因是split(expand=True)会将所有行补全到和最长元素行相同的列数,不足的位置自动填充NaN,转字符串拼接时就会被带入结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:54:03