通过运行计算按和分组



我有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

有没有一种方法可以分组,既可以按年度汇总销售额,也可以创建用户的滚动总数,因为我的用户栏由新用户和前一天的用户组成,所以基本上是按年度分组,汇总销售额,然后汇总下一天的用户-前一天用户

谢谢

使用您提供的数据帧:

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_datetime和cumsum的方法:

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

相关内容

  • 没有找到相关文章

最新更新