【发布时间】:2014-07-02 17:19:02
【问题描述】:
我有一个按时间索引的 pandas 数据框:(使用 python 3.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
我只需要一个包含每小时分辨率消耗值的列表:
data =[[ 38406, 36501, 35305,...], [ x, y, z,...], [ ],....[ ]]
换句话说:我每天都需要一个列表:包含 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 循环或 switch case 语句来完成类似的操作,以考虑不同的月份(28/29/30/31 天)。
但由于时间索引,我很确定必须有一种更简单的方法。 我也尝试过使用但没有成功
[list(x) for x in dt.T.iterrows()] /tuples and /items
我很高兴有一些提示如何有效地做到这一点
【问题讨论】:
标签: python python-3.x pandas