如何获得每个组随时间的累积总和?

我正在使用我的个人音乐历史记录数据,其中DataFrame中的每一行对应于一首已收听的歌曲。我想将数据结构化成一个DataFrame,以便每个艺术家都是自己的行,而每一列都应该对应一个唯一的日期。单元格中的值应对应于给定日期的艺术家累计收听量。

我熟悉Pandas随附的groupby方法,但是我仍然不确定如何正确地构造数据。我认为逻辑应该与时序分析中的逻辑完全相同,但是我对它们还不那么熟悉。

以下是数据集相关列的摘要:

print(df3[['artist','date_time','year','num_month','day']].head(20))

                    artist  date_time  year  num_month  day
0           Porcupine Tree 2019-09-10  2019          9   10
1           Porcupine Tree 2019-09-10  2019          9   10
2           Porcupine Tree 2019-09-09  2019          9   10
3                Rammstein 2019-08-10  2019          9   10
4                     Tool 2019-08-10  2019          9   10
5                     Tool 2019-08-09  2019          9   10
6                     Tool 2019-08-09  2019          9   10
7                     Tool 2019-08-08  2019          9   10
8                     Tool 2019-08-08  2019          9   10
9                     Tool 2019-08-08  2019          9   10
10                    Tool 2019-08-08  2019          9   10
11          Rotting Christ 2019-07-10  2019          9   10
12          Rotting Christ 2019-07-10  2019          9   10
13                  Amoral 2019-06-10  2019          9   10
14  Harry Gregson-Williams 2019-06-10  2019          9   10
15  Harry Gregson-Williams 2019-06-10  2019          9   10
16               Midge Ure 2018-09-10  2019          9   10
17             David Bowie 2018-09-10  2019          9   10
18             David Bowie 2018-09-10  2019          9   10
19             David Bowie 2018-09-10  2019          9   10

请注意,date_time的类型为datetime64 [ns]。我也将日,月和年存储为整数。

shangkewocaoniquanji 回答:如何获得每个组随时间的累积总和?

解决了!

grouped_df = df.groupby(['artist','date_time']).size().unstack(-1)
grouped_df = grouped_df.fillna(0)
grouped_df_cumsum = grouped_df.cumsum(axis=1)
本文链接:https://www.f2er.com/3115670.html

大家都在问