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

如何按group列合并DataFrame中po列非空值并用斜杠连接?

解决方案

方法一:分组后聚合过滤空值

直接对分组后的po列执行聚合操作,在聚合逻辑里过滤空字符串并完成拼接:

import pandas as pd

df = pd.DataFrame({'group':[1,1,1,1,1,1,2,2,2,2,3,3],
       'po':['1a','1b','','','','','2a','2b','2c','','3a',''],
       'part':['a','b','c','d','e','f','g','h','i','j','k','l']})

# 按group分组,拼接非空po值
result = df.groupby('group')['po'].agg(lambda x: '/'.join([val for val in x if val != ''])).reset_index()

print(result)

运行输出:

group       po
0      1    1a/1b
1      2  2a/2b/2c
2      3       3a

方法二:先过滤空值再分组拼接

如果数据量较大,先过滤掉po为空的行再分组,能提升处理效率:

# 过滤po列非空的行,再分组拼接
filtered_df = df[df['po'] != '']
result = filtered_df.groupby('group')['po'].agg('/'.join).reset_index()

关键说明

  • 以上代码针对**字符串空值''**处理,若数据中是NaN类型的空值,需将判断条件改为val.notna()或df['po'].notna()
  • reset_index()用于将分组后的索引转为普通列,确保输出为标准结构的DataFrame

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 01:37:09