gpt4 book ai didi

python - 如何在 Pandas 组中选择日期范围?

转载 作者:太空宇宙 更新时间:2023-11-04 09:28:56 27 4
gpt4 key购买 nike

我有一个格式如下的数据框,我想按日期和项目对其进行分组,然后每天计算每个项目的序列号。

但是,我想将数据框中的日期限制在从最近到 10 天前的日期范围内,并排除该范围之外的任何数据。

df = pd.DataFrame({'Date' : ['2018-01-01', '2018-01-01', '2018-01-02', '2018-01-03','2018-01-03', '2018-01-03', '2018-01-06, '2018-01-10'], 'Item' : ['Apple', 'Pear', 'Banana', 'Potato','Kiwi', 'Banana', 'Kiwi', 'Apple'],'serial no':['124161', '7124112', '123237', '765432','823542', '263872', '873492', '2342784']})
df

为了将数据帧设置为我想要的格式,我执行以下操作并获得一个 df,例如:

df = df.dropna(subset = ['Date','serial no']).sort_values(by = ['Date','serial no']).groupby(['Date','serial no']).count()
df

如何以我想要的方式限制数据的日期范围?

我尝试使用类似 datetime.datetime.now() -datetime.timedelta(10) 的东西,但这给了我类型错误。

最佳答案

您必须先将日期列转换为日期时间数据类型:

df.Date = pd.to_datetime(df.Date)

现在您可以选择所需的范围:

slice = df[df.Date >= df.Date.max() - datetime.timedelta(10)]

附言过滤应该在分组之前完成。顺便说一句,它会使分组更快。

关于python - 如何在 Pandas 组中选择日期范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56484191/

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