这是2年的每小时数据,我需要每日数据的最大值和最小值,我该如何找到?
<
答案 0 :(得分:1)
您可以将resample
与Resampler.aggregate
min
和max
一起使用:
print (df)
value
record ts
2014-01-01 00:00:00 5.83
2014-01-01 01:00:00 5.38
2014-01-01 02:00:00 4.80
2014-01-01 03:00:00 3.81
2014-01-02 04:00:00 4.46
2014-01-02 05:00:00 5.04
2014-01-02 06:00:00 5.76
2014-01-03 07:00:00 6.15
2014-01-03 08:00:00 6.66
2014-01-03 09:00:00 7.02
2014-01-03 10:00:00 7.43
2014-01-04 11:00:00 7.34
2014-01-04 12:00:00 7.24
2014-01-04 13:00:00 7.71
2014-01-05 14:00:00 8.89
2014-01-05 15:00:00 10.31
#if not DatetimeIndex
df.index = pd.to_datetime(df.index)
print (df.resample('D')['value'].agg(['min', 'max']))
min max
record ts
2014-01-01 3.81 5.83
2014-01-02 4.46 5.76
2014-01-03 6.15 7.43
2014-01-04 7.24 7.71
2014-01-05 8.89 10.31
另一种解决方案:
print (df.groupby(pd.TimeGrouper('D'))['value'].agg(['min', 'max']))
min max
record ts
2014-01-01 3.81 5.83
2014-01-02 4.46 5.76
2014-01-03 6.15 7.43
2014-01-04 7.24 7.71
2014-01-05 8.89 10.31
* piRSquared编辑,谢谢*