gpt4 book ai didi

python - 如何在 Pandas 中按日期比较列中的值?

转载 作者:太空宇宙 更新时间:2023-11-04 02:34:07 25 4
gpt4 key购买 nike

我有以下示例 DataFrame:

 Item Num       Price Type       Sales Date    
456 4 2017-12
456 1 2018-01
340 1 2017-12
340 1 2018-01
500 2 2017-12
500 1 2018-01

我想检查 1 月份价格类型为 1 的每个商品编号,12 月份的价格类型是否不同,并标记该行。所以我希望我的输出是这样的:

 Item_Num       Price Type       Sales Date    Flag
456 4 2017-12 price type change
500 2 2017-12 price type change

我在想这样的事情:

 for num in df.Item_Num:
print(desired rows)

最佳答案

这是你想要的吗?

df['Sales Date'] = pd.to_datetime(df['Sales Date'])

cond = (df['Item Num'] == df['Item Num'].shift(-1)) & (df['Price Type'] != df['Price Type'].shift(-1))

df['Flag'] = np.where(cond, 'Price Type Change', '')

你得到

    Item Num    Price Type  Sales Date  Flag
0 456 4 2017-12-01 Price Type Change
1 456 1 2018-01-01
2 340 1 2017-12-01
3 340 1 2018-01-01
4 500 2 2017-12-01 Price Type Change
5 500 1 2018-01-01

如果您只想比较 2017 年 12 月和 2018 年 1 月的值,您可以先使用

df = df[((df['Sales Date'].dt.year == 2018) & (df['Sales Date'].dt.month == 1)) | ((df['Sales Date'].dt.year == 2017) & (df['Sales Date'].dt.month == 12))]

关于python - 如何在 Pandas 中按日期比较列中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48346213/

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