从python中的15分钟间隔数据中提取小时数据
我有一个数据帧df:从python中的15分钟间隔数据中提取小时数据,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据帧df: Year Month Day Hour Minute Reading 2011 1 1 0 0 1 2011 1 1 0 15 0.2 2011 1 1 0 30 0.4 2011 1 1 0 45 0.0 2011 1 1 1 0 0.2 2011 1 1 1 15 0.5
Year Month Day Hour Minute Reading
2011 1 1 0 0 1
2011 1 1 0 15 0.2
2011 1 1 0 30 0.4
2011 1 1 0 45 0.0
2011 1 1 1 0 0.2
2011 1 1 1 15 0.5
2011 1 1 1 30 0.3
2011 1 1 1 45 0.1
上述数据帧具有15分钟的间隔数据。我希望添加一个新列,并获得每4个读数的总和,从而将其转换为每小时数据。例如,“0”小时为1+0.2+0.4+0.0=1.6
因此,我的输出应该如下所示:
Year Month Day Hour Minute Hourly_Reading
2011 1 1 0 0 1.6
2011 1 1 1 0 1.1
有人能给我介绍一下吗?如果您愿意,您也可以使用transform将结果分配给df: 结果:
Year Month Day Hour Minute Reading Hourly_Reading
0 2011 1 1 0 0 1.0 1.6
1 2011 1 1 0 15 0.2 1.6
2 2011 1 1 0 30 0.4 1.6
3 2011 1 1 0 45 0.0 1.6
4 2011 1 1 1 0 0.2 1.1
5 2011 1 1 1 15 0.5 1.1
6 2011 1 1 1 30 0.3 1.1
7 2011 1 1 1 45 0.1 1.1
如果需要,还可以使用transform将结果指定给df: 结果:
Year Month Day Hour Minute Reading Hourly_Reading
0 2011 1 1 0 0 1.0 1.6
1 2011 1 1 0 15 0.2 1.6
2 2011 1 1 0 30 0.4 1.6
3 2011 1 1 0 45 0.0 1.6
4 2011 1 1 1 0 0.2 1.1
5 2011 1 1 1 15 0.5 1.1
6 2011 1 1 1 30 0.3 1.1
7 2011 1 1 1 45 0.1 1.1
选择1
您可以使用groupby:
输出:
Year Month Day Hour Minutes Reading
0 2011 1 1 0 0 1.6
1 2011 1 1 1 0 1.1
Year Month Day Hour Minutes Reading
0 2011 1 1 0 0 1.6
1 2011 1 1 1 0 1.1
选择2
使用set_索引和与级别参数求和:
(df.set_index(['Year','Month','Day','Hour'])['Reading']
.sum(level=[0,1,2,3])
.reset_index()
.assign(Minutes=0)
.reindex_axis(['Year','Month','Day','Hour','Minutes','Reading'],axis=1))
输出:
Year Month Day Hour Minutes Reading
0 2011 1 1 0 0 1.6
1 2011 1 1 1 0 1.1
Year Month Day Hour Minutes Reading
0 2011 1 1 0 0 1.6
1 2011 1 1 1 0 1.1
选择1
您可以使用groupby:
输出:
Year Month Day Hour Minutes Reading
0 2011 1 1 0 0 1.6
1 2011 1 1 1 0 1.1
Year Month Day Hour Minutes Reading
0 2011 1 1 0 0 1.6
1 2011 1 1 1 0 1.1
选择2
使用set_索引和与级别参数求和:
(df.set_index(['Year','Month','Day','Hour'])['Reading']
.sum(level=[0,1,2,3])
.reset_index()
.assign(Minutes=0)
.reindex_axis(['Year','Month','Day','Hour','Minutes','Reading'],axis=1))
输出:
Year Month Day Hour Minutes Reading
0 2011 1 1 0 0 1.6
1 2011 1 1 1 0 1.1
Year Month Day Hour Minutes Reading
0 2011 1 1 0 0 1.6
1 2011 1 1 1 0 1.1