簡體   English   中英

使用運行計算按總和分組

[英]Group by sum with running calculation

我有 df 作為

Sales | Users |   DT
40000    234     1/4/2018
500      100     1/23/2018
4000     555     2/4/2018
234      1000    6/4/2018
1000     2000    6/14/2018
50000    1200    9/12/2018
40000    234     1/14/2019
500      100     2/23/2019
2145     555     2/26/2019
344      1000    6/14/2019
1234     1233    6/21/2019
432      5000     11/12/2019

是否有方法可以按年份匯總銷售額並創建滾動用戶總數,因為我的用戶列由新用戶和上一個日期的用戶組成,所以基本上按年份分組,匯總銷售額,然后匯總下一個日期的用戶 - 上一個日期的用戶

謝謝

使用您提供的 dataframe:

import pandas as pd


df = pd.DataFrame(
    {
        "Sales": [40000, 500, 4000, 234, 1000, 50000, 40000, 500, 2145, 344, 1234, 432],
        "Users": [234, 100, 555, 1000, 2000, 1200, 234, 100, 555, 1000, 1233, 5000],
        "DT": ["1/4/2018", "1/23/2018", "2/4/2018", "6/4/2018", "6/14/2018", "9/12/2018", "1/14/2019", "2/23/2019", "2/26/2019", "6/14/2019", "6/21/2019", "11/12/2019"],
    }
)

這是使用to_datetimecumsum的一種方法:

df["DT"] = pd.to_datetime(df["DT"]).dt.year

df = (
    df.groupby("DT")
    .agg(sum)
    .pipe(lambda df_: df_.assign(Users=df_["Users"].cumsum()))
    .reset_index()
)
print(df)
# Output
     DT  Sales  Users
0  2018  95734   5089
1  2019  44655  13211

暫無
暫無

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

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