gpt4 book ai didi

python - 如何在 pandas 中沿着时间戳对总和进行分组?

转载 作者:行者123 更新时间:2023-12-01 02:54:45 25 4
gpt4 key购买 nike

一年数据如下:

datetime                 data
2008-01-01 00:00:00 0.044
2008-01-01 00:30:00 0.031
2008-01-01 01:00:00 -0.25
.....
2008-01-31 23:00:00 0.036
2008-01-31 23:30:00 0.42
2008-01-02 00:00:00 0.078
2008-01-02 00:30:00 0.008
2008-01-02 01:00:00 0.09
2008-01-02 01:30:00 0.054
.....
2008-12-31 22:00:00 0.55
2008-12-31 22:30:00 0.05
2008-12-31 23:00:00 0.08
2008-12-31 23:30:00 0.033

每半小时有一个值。我想要一天内所有值的总和,因此转换为 365 行值。

year     day   sum values
2008 1 *
2008 2 *
...
2008 364 *
2008 365 *

最佳答案

您可以将 dt.year + dt.dayofyeargroupby 一起使用并聚合 sum:

df = df.groupby([df['datetime'].dt.year, df['datetime'].dt.dayofyear]).sum()
print (df)
data
datetime datetime
2008 1 -0.175
2 0.230
31 0.456
366 0.713

如果需要,DataFrame 可以将索引转换为列并通过 reset_index + rename_axis 设置列名称:

df = df.groupby([df['datetime'].dt.year, df['datetime'].dt.dayofyear])['data']
.sum()
.rename_axis(('year','dayofyear'))
.reset_index()
print (df)
year dayofyear data
0 2008 1 -0.175
1 2008 2 0.230
2 2008 31 0.456
3 2008 366 0.713

关于python - 如何在 pandas 中沿着时间戳对总和进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44329783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com