我有一个带有RangeIndex
的数据框,第一列中的时间戳记,第二列中的每小时数千个温度观测值。
将观察值按24分组并找到每日的Tmax和Tmin很容易。但是我还想要每天的最大值和最小值的时间戳。
我该怎么做?
我希望我能在不发布有效示例的情况下获得帮助,因为数据的性质使其不切实际。
编辑:这是两天的数据。
DT T-C
0 2015-01-01 00:00:00 -2.5
1 2015-01-01 01:00:00 -2.1
2 2015-01-01 02:00:00 -2.3
3 2015-01-01 03:00:00 -2.3
4 2015-01-01 04:00:00 -2.3
5 2015-01-01 05:00:00 -2.0
...
24 2015-01-02 00:00:00 1.1
25 2015-01-02 01:00:00 1.1
26 2015-01-02 02:00:00 0.8
27 2015-01-02 03:00:00 0.5
28 2015-01-02 04:00:00 1.0
29 2015-01-02 05:00:00 0.7
答案 0 :(得分:1)
首先创建DatetimeIndex
,然后通过Grouper
与days
和idxmax
进行汇总
idxmin
用于min
和max
温度的日期时间:
df['DT'] = pd.to_datetime(df['DT'])
df = df.set_index('DT')
df = df.groupby(pd.Grouper(freq='D'))['T-C'].agg(['idxmax','idxmin','max','min'])
print (df)
idxmax idxmin max min
DT
2015-01-01 2015-01-01 05:00:00 2015-01-01 00:00:00 -2.0 -2.5
2015-01-02 2015-01-02 00:00:00 2015-01-02 03:00:00 1.1 0.5