gpt4 book ai didi

python - 在 Python 中使用 Pandas 查找每日最大小时数

转载 作者:太空狗 更新时间:2023-10-29 22:29:23 25 4
gpt4 key购买 nike

我试图在我的需求时间序列中找出每天最大需求的时间。

我创建了一个数据框,看起来像..

                       power
2011-01-01 00:00:00 1015.70
2011-01-01 01:00:00 1015.70
2011-01-01 02:00:00 1010.30
2011-01-01 03:00:00 1010.90
2011-01-01 04:00:00 1021.10
2011-01-01 05:00:00 1046.00
2011-01-01 06:00:00 1054.60
...

和一个分组系列,使用 .max() 找到每天的最大值

grouped = df.groupby(pd.TimeGrouper('D'))
grouped['power'].max()

输出

2011-01-01    1367.30
2011-01-02 1381.90
2011-01-03 1289.00
2011-01-04 1323.50
2011-01-05 1372.70
2011-01-06 1314.40
2011-01-07 1310.60
...

但是我也需要最大值的小时。所以像这样:

2011-01-01  18  1367.30
2011-01-02 5 1381.90
2011-01-03 22 1289.00
2011-01-04 10 1323.50
...

我试过使用 idxmax() 但我一直收到 ValueError

最佳答案

2018-09-19 更新:

FutureWarning: pd.TimeGrouper is deprecated and will be removed; Please use pd.Grouper(freq=...)

解决方法:

In [295]: df.loc[df.groupby(pd.Grouper(freq='D')).idxmax().iloc[:, 0]]
Out[295]:
power
2011-01-01 06:00:00 1054.6
2011-01-02 06:00:00 2054.6

旧答案:

试试这个:

In [376]: df.loc[df.groupby(pd.TimeGrouper('D')).idxmax().iloc[:, 0]]
Out[376]:
power
2011-01-01 06:00:00 1054.6
2011-01-02 06:00:00 2054.6

数据:

In [377]: df
Out[377]:
power
2011-01-01 00:00:00 1015.7
2011-01-01 01:00:00 1015.7
2011-01-01 02:00:00 1010.3
2011-01-01 03:00:00 1010.9
2011-01-01 04:00:00 1021.1
2011-01-01 05:00:00 1046.0
2011-01-01 06:00:00 1054.6
2011-01-02 00:00:00 2015.7
2011-01-02 01:00:00 2015.7
2011-01-02 02:00:00 2010.3
2011-01-02 03:00:00 2010.9
2011-01-02 04:00:00 2021.1
2011-01-02 05:00:00 2046.0
2011-01-02 06:00:00 2054.6

关于python - 在 Python 中使用 Pandas 查找每日最大小时数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37443296/

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