我有一个按时间索引的pandas数据帧:(使用python3.X)
2012-01-01 00:00:00 38406
2012-01-01 01:00:00 36501
2012-01-01 02:00:00 35305
...
2012-12-31 09:00:00 43121
2012-12-31 10:00:00 44549
2012-12-31 11:00:00 45635
我只需要一个列表,其中包含每小时分辨率的消耗值:
^{pr2}$换句话说:我需要一个每天的列表:包含24个值(一天中每小时一个值)。它们都应该放在一张单子里。在
所以data[0]会给我一个包含第一天24个消费值的列表。在
我所做的:
一个月而不是一整年,可能是这样的:
clusterInput=[None]*31
for i in range(31):
a="2012-1-"+str(i+1)
subset=data[a]
clusterInput[i]=subset.values
对于全年,可以类似地使用多个For loop或switch case语句来完成,以考虑不同月份(28/29/30/31天)。在
但我很肯定,由于时间指数的关系,肯定会有更简单的方法。 我也试过使用,但没有成功
[list(x) for x in dt.T.iterrows()] /tuples and /items
我很乐意为您提供一些如何有效地做到这一点的提示
给定一个索引为
DatetimeIndex
的Pandas数据帧,您可以使用groupby
方法对索引具有相同日期的所有行进行分组:但是,如果您只想将每24行分组在一起,可以使用grouper recipe:
^{pr2}$这是更快的,因为它不必关注索引,但它确实依赖于每天正好有24行,并且要分组的行是连续的。在
相关问题 更多 >
编程相关推荐