我有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
是否有方法分组,既可以按yr对销售进行汇总,也可以创建滚动用户总数,因为“我的用户”列既包括新用户,也包括以前的用户,因此基本上是按年分组,然后从下一个日期开始对用户进行汇总--提前日期用户。
谢谢
发布于 2022-09-25 09:08:37
根据你提供的数据:
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"],
}
)
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
https://stackoverflow.com/questions/73808590
复制相似问题