gpt4 book ai didi

python - 按函数分组后将值与先前值进行比较

转载 作者:太空宇宙 更新时间:2023-11-03 21:34:29 26 4
gpt4 key购买 nike

我已将数据分组如下:df1 = df.groupby(['商店', '地区', '商品'])

STORE  REGION  
Store1 West Item price result
1 1.00 0
2 2.00 0
3 2.00 0
2.50 1
4 1.00 0
1.00 0
.50 1
1.00 1

基本上我想用 1 来表示价格是否有变化,如果没有价格变化则用 0 来表示。如果每件商品只有一个价格,那么我希望在这些情况下也返回 0。

我已经用下面的代码尝试过,但失败了:

data_cleaned.groupby(['STORE', 'REGION', 'Item'])['price'].apply(lambda x: 1 if x == x.change.shift(1) else 0})

最佳答案

您可以将groupbydiff结合使用。这是一个演示:

df = pd.DataFrame({'Item': [1, 2, 3, 3, 4, 4, 4, 4],
'price': [1, 2, 2, 2.5, 1, 1, 0.5, 1]})

df = df.set_index('Item')

df['change'] = df.groupby(level=0)['price'].diff().abs().gt(0).astype(int)

print(df)

price change
Item
1 1.0 0
2 2.0 0
3 2.0 0
3 2.5 1
4 1.0 0
4 1.0 0
4 0.5 1
4 1.0 1

关于python - 按函数分组后将值与先前值进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53324337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com