首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按总和分组并进行运行计算

按总和分组并进行运行计算
EN

Stack Overflow用户
提问于 2022-09-22 02:06:49
回答 1查看 60关注 0票数 0

我有df

代码语言:javascript
运行
复制
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对销售进行汇总,也可以创建滚动用户总数,因为“我的用户”列既包括新用户,也包括以前的用户,因此基本上是按年分组,然后从下一个日期开始对用户进行汇总--提前日期用户。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-25 09:08:37

根据你提供的数据:

代码语言:javascript
运行
复制
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"],
    }
)

这里有一种使用日期时间积木来实现它的方法

代码语言:javascript
运行
复制
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()
)
代码语言:javascript
运行
复制
print(df)
# Output
     DT  Sales  Users
0  2018  95734   5089
1  2019  44655  13211
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73808590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档