簡體   English   中英

Pandas groupby,累計和 plot by category

[英]Pandas groupby, cumulative sum and plot by category

有一個pandas數據幀:

    date        path    size
0   2019-05-10  /bar/A  3
1   2019-05-10  /bar/B  7
2   2019-05-10  /bar/C  2
3   2019-05-14  /bar/A  4
4   2019-05-14  /bar/B  8
5   2019-05-14  /bar/C  23
6   2019-05-18  /bar/A  11
7   2019-05-18  /bar/B  75
8   2019-05-18  /bar/C  32

我想按“路徑” groupby並返回每個“日期”列“大小”的累積總和

看這個答案: Pandas groupby 累計和

一個簡單的df.groupby(["path"])["size"].cumsum()df.groupby(["path","date"])["size"].cumsum()將不起作用。

最后,應按日期繪制累積總和並按組着色,以指示“大小”隨時間的累積增長。

            /bar/A /bar/B /bar/C
2019-05-10  3      7      2
2019-05-14  7      15     26
2019-05-18  18     90     58

是否有沒有seaborn或其他工具的基於pandas的解決方案?

我認為您可以實現旋轉表格然后應用累積總和。

pivot = pd.pivot_table(df, values="size", index=["date"], columns=["path"], aggfunc=np.sum)
pivot = pivot.cumsum()

根據您的問題示例查看結果:

df
Out[14]: 
         date    path  size
0  2019-05-10  /bar/A     3
1  2019-05-10  /bar/B     7
2  2019-05-10  /bar/C     2
3  2019-05-14  /bar/A     4
4  2019-05-14  /bar/B     8
5  2019-05-14  /bar/C    23
6  2019-05-18  /bar/A    11
7  2019-05-18  /bar/B    75
8  2019-05-18  /bar/C    32
pivot = pd.pivot_table(df, values="size", index=["date"], columns=["path"], aggfunc=np.sum)
pivot.cumsum()
Out[16]: 
path        /bar/A  /bar/B  /bar/C
date                              
2019-05-10       3       7       2
2019-05-14       7      15      25
2019-05-18      18      90      57

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM