如何在Pandas DataFrame中合并行?尝试groupby JVNo未达预期
解决方案
问题说明
我拥有如下数据集:
期望得到的结果为:
尝试使用groupby JVNo处理但未得到预期结果,该如何实现?
实现代码(基于Pandas)
问题出在仅用groupby未针对不同列设置对应聚合逻辑,以下是可行的实现代码:
import pandas as pd # 读取数据集(根据实际存储格式调整,Excel文件用pd.read_excel) df = pd.read_csv("your_dataset.csv") # 定义各列的聚合规则 agg_rules = { "OrderNo": lambda x: ", ".join(x.unique()), # 合并去重后的关联订单号 "Desc": "first", # 取同JVNo下第一个描述(默认同JVNo的描述一致) "Qty": "sum", # 对同JVNo下的数量求和 "UOM": "first", # 取同JVNo下第一个单位(默认同JVNo的单位一致) "Plant": "first", "Material": "first" } # 按JVNo分组并执行聚合 result_df = df.groupby("JVNo", as_index=False).agg(agg_rules) # 查看或保存结果 print(result_df) # result_df.to_csv("result.csv", index=False)
关键说明
- 针对
Qty列需要求和,合并同JVNo下的所有数量 OrderNo列需要合并该JVNo关联的所有唯一订单号Desc、UOM等列因同JVNo下值一致,直接取第一个值即可
内容的提问来源于stack exchange,提问作者Brinda Marshall
相关产品推荐
相关产品推荐

