我有一个很小的数据框,其中行索引是日期-时间.我想把几周加成几个月,但我在苦苦挣扎.有什么建议吗?似乎想不出如何根据索引进行分组.

               A       B       C       D
Date                                      
2023-01-08  0.0000  0.7075  0.0000   0.000
2023-01-15  0.0000  1.0000  0.0000   0.000
2023-01-22  0.0000  1.0000  0.0000   0.000
2023-01-29  0.0325  0.9300  0.0000   0.025
2023-02-05  0.0250  0.9750  0.0000   0.000
2023-02-12  0.0050  0.5450  0.0000   0.000
2023-02-19  0.0000  0.1800  0.0000   0.000
2023-02-26  0.0000  0.0000  0.0000   0.000
2023-03-05  0.0000  0.0000  0.0000   0.000
2023-03-12  0.0000  0.0000  0.0000   0.000
2023-03-19  0.0000  0.0000  0.0000   0.000
2023-03-26  0.0000  0.4375  0.1875   0.000

推荐答案

您应该将to_period:

df.groupby(pd.to_datetime(df.index).to_period('M')).sum()

输出:

              A       B       C      D
Date                                  
2023-01  0.0325  3.6375  0.0000  0.025
2023-02  0.0300  1.7000  0.0000  0.000
2023-03  0.0000  0.4375  0.1875  0.000

alternative

月度开始时为resample(MS):

df.index = pd.to_datetime(df.index)

out = df.resample('MS').sum()

输出:

                 A       B       C      D
Date                                     
2023-01-01  0.0325  3.6375  0.0000  0.025
2023-02-01  0.0300  1.7000  0.0000  0.000
2023-03-01  0.0000  0.4375  0.1875  0.000

Python相关问答推荐

我们可以在apps.py?中使用Post_Save信号吗

如何从不同长度的HTML表格中抓取准确的字段?

当变量也可以是无或真时,判断是否为假

当测试字符串100%包含查询字符串时,为什么t fuzzywuzzy s Process.extractBests不给出100%分数?

使用imap-tools时错误,其邮箱地址包含域名中的非默认字符

如果我已经使用了time,如何要求Python在12秒后执行另一个操作.sleep

"如果发生特定错误,返回值

按照行主要蛇扫描顺序对点列表进行排序

使用polars .滤镜进行切片速度比pandas .loc慢

'discord.ext. commanders.cog没有属性监听器'

如何将双框框列中的成对变成两个新列

如何在polars(pythonapi)中解构嵌套 struct ?

如何从.cgi网站刮一张表到rame?

修复mypy错误-赋值中的类型不兼容(表达式具有类型xxx,变量具有类型yyy)

SQLAlchemy Like ALL ORM analog

形状弃用警告与组合多边形和多边形如何解决

如何根据一列的值有条件地 Select 前N组?

如何使Matplotlib标题以图形为中心,而图例框则以图形为中心

mypy无法推断类型参数.List和Iterable的区别

Plotly Dash Creating Interactive Graph下拉列表