最大月值,同时保持发生在其中该值的数据

问题描述 投票:0回答:1

我有一个类似如下日降雨量数据:

日期雨量(毫米) 1922年1月1日0.0 1922年1月2日0.0 1922年1月3日0.0 1922年1月4日0.0 1922年1月5日31.5 1922年1月6日0.0 1922年1月7日0.0 1922年1月8日0.0 1922年1月9日0.0 1922年1月10日0.0 1922年1月11日0.0 1922年1月12日9.1 1922年1月13日6.4 。 。 。

我试图找出每月每年为最大值,亦是迄今为止发生在最大值。我一直在使用的代码:

rain_data.groupby(pd.Grouper(freq = 'M'))['Rainfall (mm)'].max()

这是返回正确的最大值,但返回每个月的最后一天,而不是发生在最大事件的日期。

1974-11-30   0.0 1974-12-31   0.0 1975-01-31   0.0 1975-02-28   65.0 1975-03-31   129.5 1975-11-30   59.9 1975-12-31   7.1 1976-01-31   10.0 1976-11-30   0.0 1976-12-31   0.0 1977-01-31   4.3

我如何能得到正确的日期有什么建议?

python pandas max weather
1个回答
0
投票

我是新来的这一点,但我认为你做的(pd.Grouper(freq = 'M'))被分组每个月所有的值,但它是一个组内的每个值分配到相同的日期。我想这就是为什么你的groupby没有返回你正在寻找的日期。

我觉得你的问题被回答hereAlexander建议使用:

df.groupby(pd.TimeGrouper('M')).Close.agg({'max date': 'idxmax', 'max rainfall': np.max})

agg作品,未经Close我想,如果这是有问题的(因为我发现),你可能想要把它取出来。

© www.soinside.com 2019 - 2024. All rights reserved.