[英]How do I aggregate datetime data by week using isocalendar in python?
我想将日期时间数据汇总到每周的水平。 以下适用于dt.week
,但我收到警告说dt.week
已被弃用。 我还没有成功使用 isocalendar。 你会推荐什么?
这是我想按周汇总的数据示例:
import pandas as pd
times = ['2021-01-28 08:00:00', '2021-01-26 08:00:00', '2021-01-25 08:00:00']
quantities = [40, 12, 43]
df = pd.DataFrame({'date':['2021-01-28 08:00:00','2021-01-26 08:00:00','2021-02-25 08:00:00'],
'quantity':[40, 12, 43]}) # 52 in one week, 43 in the other week
df['date'] = pd.to_datetime(df['date'])
df
dt.week
方法有效,但会引发警告:
df['week_num'] = df['date'].dt.week
df.groupby('week_num').sum('quantity')
结果: week_num 4的数量为 52 , week_num 8的数量为 43 。
警告内容为<ipython-input-50-d66026a79596>:1: FutureWarning: Series.dt.weekofyear and Series.dt.week have been deprecated. Please use Series.dt.isocalendar().week instead. df['week_num'] = df['date'].dt.week
<ipython-input-50-d66026a79596>:1: FutureWarning: Series.dt.weekofyear and Series.dt.week have been deprecated. Please use Series.dt.isocalendar().week instead. df['week_num'] = df['date'].dt.week
我会跟着并尝试它所说的:
>>> df.groupby(df['date'].dt.isocalendar().week).sum('quantity')
quantity
week
4 52
8 43
或者,如果您更喜欢week_num
:
df.groupby(
df['date'].dt.isocalendar().week
).sum('quantity').rename_axis(index='week_num')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.