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

Pandas:当列值相同时合并行(整数按文本拼接)

解决方案

直接用pandas的groupby+agg组合就能实现你的需求,替换代码里的XX和XY部分,具体实现如下:

import pandas as pd

# 假设你的DataFrame变量名为df
df_merged = df.groupby('Zeitsumme').agg(
    V_MV=('V/MV', lambda x: ' & '.join(x.astype(str))),
    t_s=('t/s', lambda x: ' & '.join(x.astype(str))),
    Wert=('Wert', 'sum'),
    Zeitsumme=('Zeitsumme', 'first')  # 保留原相同值,取组内第一个即可
).rename(columns={'V_MV': 'V/MV', 't_s': 't/s'}).reset_index(drop=True)

代码说明

  • groupby('Zeitsumme'): 按'Zeitsumme'列的相同值分组,把需要合并的行归为一组
  • agg() 里的参数定义了每列的处理规则:
    • 'V/MV'和't/s'列:用lambda函数把列内元素转成字符串后,用" & "拼接
    • 'Wert'列:直接用sum聚合函数计算数值总和
    • 'Zeitsumme'列:取组内第一个值(因为分组后该列值都相同,取任意一个都可以)
  • rename(columns=...): 修正聚合时自动生成的列名,还原成原列名
  • reset_index(drop=True): 重置索引,让结果的索引从0开始连续排列

补充提示

如果原数据中'V/MV'或't/s'列本身就是字符串类型,可以去掉astype(str),直接用' & '.join(x)即可;如果列中有缺失值,建议先通过df['V/MV'] = df['V/MV'].fillna('')处理,避免拼接出无效内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 17:17:20