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

使用Python Pandas合并Excel列并合并多行的实现求助

解决Excel数据分组合并问题

原始数据

Name    Segment        revenue  Product_id  Status  Order_count      days_ago
Dummy   High value     1000      P_ABC       Yes       2            30 days ago
Dummy   High value     1000      P_CDE       No        1            20 days ago
Dummy   High value     1000      P_EFG       Yes       3            10 days ago
Tammy   Low value      50        P_ABC       No        0            100 days ago
Tammy   Low_value      50        P_DCF       Yes       1            10 days ago

问题分析

你的代码仅完成了分组筛选,未实现同一分组多行合并为一行的核心需求,且忽略了Order_count是数值类型,直接拼接会触发类型错误。

完整实现代码

import pandas as pd

# 读取Excel文件(替换为你的文件路径)
df = pd.read_excel("your_input_file.xlsx")

# 步骤a:拼接指定列,注意将数值型的Order_count转为字符串
df["concat_value"] = df["Product_id"] + " - " + df["Status"] + " - " + df["Order_count"].astype(str)

# 步骤b+c:分组并合并同组数据
df_merged = df.groupby(["Name", "Segment", "revenue"], as_index=False).agg(
    # 将同组的concat_value用分号分隔合并
    concat_value=("concat_value", "; ".join),
    # 同组的days_ago也按同样方式合并,可根据需求调整(比如取最近日期)
    days_ago=("days_ago", "; ".join)
)

# 输出到Excel
df_merged.to_excel("merged_output.xlsx", index=False)

预期输出结果

NameSegmentrevenueconcat_valuedays_ago
DummyHigh value1000P_ABC - Yes - 2; P_CDE - No - 1; P_EFG - Yes - 330 days ago; 20 days ago; 10 days ago
TammyLow value50P_ABC - No - 0100 days ago
TammyLow_value50P_DCF - Yes - 110 days ago

关键说明

  1. 类型转换:Order_count是整数类型,必须转为字符串后才能和其他文本列拼接,否则会报错。
  2. 聚合方式:使用agg方法指定每个列的合并规则,这里用; .join将同组的多行内容合并为单个字符串,你可以根据需求替换为其他分隔符(比如逗号)。
  3. 分组保留索引:as_index=False确保分组键(Name、Segment、revenue)作为普通列保留在结果中,而非索引。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 08:02:08