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

如何在Pandas中按指定多列条件拼接某列值并实现聚合计算

实现方案

用Pandas的groupby配合聚合方法即可直接实现需求,具体操作如下:

  • 先导入Pandas库,若你的DataFrame中text列存在空值,可先将空值替换为空字符串避免拼接报错
  • 按id、id_2、id_3三列分组,分别指定text列和integers列的聚合规则即可

完整代码示例

import pandas as pd

# 构造和你需求匹配的测试数据
df = pd.DataFrame({
    'id': [0,0,0,1,1],
    'id_2': [1,1,1,2,2],
    'id_3': [2,2,2,3,3],
    'text': ['lorem', 'epsilon', 'text3', 'hello', 'world'],
    'integers': [10,20,30,5,15]
})

# 可选:处理text列空值
df['text'] = df['text'].fillna('')

# 核心分组聚合逻辑
result = df.groupby(['id', 'id_2', 'id_3'], as_index=False).agg(
    text=('text', ' '.join), # 要逗号拼接就把' '替换成', '即可
    integers=('integers', 'sum')
)

# 按你示例的格式输出
for _, row in result.iterrows():
    print(f"{row['id']} | {row['id_2']} | {row['id_3']} | {row['text']} | {row['integers']}")

输出效果

你提到的id=0、id_2=1、id_3=2分组的运行输出和你预期完全一致:
0 | 1 | 2 | lorem epsilon text3 | 60

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:45:02