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

Pandas DataFrame分组及商品跨地区成本差异检测与计算问题

Pandas DataFrame分组及商品跨地区成本差异检测与计算问题

嘿,我完全懂你现在卡在这儿的感觉!咱们来一步步解决这个问题——你想要找出同一天里同一款商品在不同地区有没有成本差异,还想算出具体差了多少,对吧?先看看你提供的这份数据:

distributor  Location    Date    item    cost
0   GEC           KA    2025-02-01  Apple   10.0
1   GEC           TN    2025-02-01  Apple   10.0
2   GEC           AP    2025-02-01  Apple   9.0
3   GEC           KA    2025-02-02  Orange  8.0
4   GEC           TN    2025-02-02  Orange  7.0
5   GEC           AP    2025-02-02  Orange  8.5
6   GEC           KA    2025-02-03  Banana  6.0
7   GEC           TN    2025-02-03  Banana  6.0
8   GEC           AP    2025-02-03  Banana  6.0

第一步:检测哪些商品在同一天存在跨地区成本差异

你之前尝试按日期、商品分组的思路是对的!我们可以通过分组后检查每组内的成本值是否唯一,来判断有没有差异:

import pandas as pd

# 假设你的数据已经存入DataFrame df
# 给每一行标记:该日期+商品是否存在成本差异
df['has_cost_diff'] = df.groupby(['Date', 'item'])['cost'].transform(lambda x: x.nunique() > 1)

# 筛选出所有存在差异的记录,方便查看
diff_records = df[df['has_cost_diff']]
print(diff_records)

运行后你会看到,Apple(2025-02-01)和Orange(2025-02-02)这两组是有差异的,Banana那组没有。

第二步:计算具体的成本差异

接下来咱们可以算出差值,这里给你两种常用的方式:

方式一:计算每组的最大最小成本差

如果你只想知道每个日期+商品组合的最大成本差,可以这样做:

# 按日期和商品分组,聚合出最小成本、最大成本以及差值
cost_diff_summary = df.groupby(['Date', 'item']).agg(
    min_cost=('cost', 'min'),
    max_cost=('cost', 'max'),
    cost_diff=('cost', lambda x: x.max() - x.min())
).reset_index()

# 只保留有差异的条目
cost_diff_summary = cost_diff_summary[cost_diff_summary['cost_diff'] > 0]
print(cost_diff_summary)

输出结果会清晰显示:Apple在2025-02-01的成本差是1.0,Orange在2025-02-02的成本差是1.5。

方式二:和指定基准地区的成本对比

如果你想知道每个地区和某个基准地区(比如KA)的成本差,可以这样:

# 先提取KA地区的成本作为基准值
ka_cost = df[df['Location'] == 'KA'][['Date', 'item', 'cost']].rename(columns={'cost': 'ka_cost'})

# 和原数据合并,计算每个地区与KA的成本差
df_with_ka_diff = pd.merge(df, ka_cost, on=['Date', 'item'], how='left')
df_with_ka_diff['diff_from_ka'] = df_with_ka_diff['cost'] - df_with_ka_diff['ka_cost']

# 筛选出和KA有差异的记录
diff_from_ka_records = df_with_ka_diff[df_with_ka_diff['diff_from_ka'] != 0]
print(diff_from_ka_records)

这样你就能看到:AP的Apple比KA便宜1.0,TN的Orange比KA便宜1.0,AP的Orange比KA贵0.5,一目了然。

备注:内容来源于stack exchange,提问作者Abhishek K M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 19:32:59