gpt4 book ai didi

python - 给定日期时间列的 Pandas groupby week

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

假设我有以下数据样本:

df = pd.DataFrame({'date':['2011-01-01','2011-01-02',
'2011-01-03','2011-01-04','2011-01-05',
'2011-01-06','2011-01-07','2011-01-08',
'2011-01-09','2011-12-30','2011-12-31'],
'revenue':[5,3,2,
10,12,2,
1,0,6,10,12]})

# Let's format the date and add the week number and year
df['date'] = pd.to_datetime(df['date'],format='%Y-%m-%d')
df['week_number'] = df['date'].dt.week
df['year'] = df['date'].dt.year

df

date revenue week_of_year year
0 2011-01-01 5 52 2011
1 2011-01-02 3 52 2011
2 2011-01-03 2 1 2011
3 2011-01-04 10 1 2011
4 2011-01-05 12 1 2011
5 2011-01-06 2 1 2011
6 2011-01-07 1 1 2011
7 2011-01-08 0 1 2011
8 2011-01-09 6 1 2011
9 2011-12-30 10 52 2011
10 2011-12-31 12 52 2011

我想计算每周的收入,以便稍后绘制结果并分析时间序列。预期的输出将是这样的:

    week    revenue
0 1 8
1 2 33
2 52 22

我首先想到使用 timestamp.week 给出的周数。
但是,我不知道如何处理第 1 周前一周的 ISO 周数定义。我有点困惑,因为在那种情况下按 week_number 分组会将年初和年末的收入相加。

最佳答案

当您使用 dt.week 转换时,它是 ISO week date .

你可以使用strftime

df.groupby(df.date.dt.strftime('%W')).revenue.sum()
Out[588]:
date
00 8
01 33
52 22
Name: revenue, dtype: int64

关于python - 给定日期时间列的 Pandas groupby week,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51105216/

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