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

如何在Pandas GroupBy后用|拼接数据并排除空值/NaN/空白字符串

解决分组拼接时排除空值/空白字符串的问题

直接修改lambda函数,在拼接前过滤掉空值、空白字符串这类无效内容即可:

data = df.groupby('pid')[['date','task','language']].transform(
    lambda x: '|'.join([val for val in x if val and str(val).strip()])
)

代码说明

  • val and str(val).strip():先判断值是否非空,再将值转为字符串后去除首尾空白,确保过滤掉None、''、' '这类无效内容
  • 通过列表推导式遍历每组的字段值,只保留有效内容后再用|拼接

如果你的空值是pandas中的NaN,可以把判断条件调整为:

import pandas as pd

data = df.groupby('pid')[['date','task','language']].transform(
    lambda x: '|'.join([val for val in x if pd.notna(val) and str(val).strip()])
)

示例验证

假设原始数据如下:

piddatetasklanguage
12024-01-01编码Python
1NaNJava
12024-01-02测试
2需求分析Go

用修改后的代码处理后,pid=1的date字段会拼接成2024-01-01|2024-01-02,task字段为编码|测试,language字段为Python|Java,完全排除了无效内容。

内容的提问来源于stack exchange,提问作者Siva Rama krishna Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 18:21:27