我的DataFrame是在约60天内每分钟拍摄的一个数组时间序列。
首先,我想将df分成24小时。
然后我想将某些属性绘制为瀑布图,相互叠加线图。
我正在考虑在iloc
循环中使用for
来执行此操作,因为df行按时间索引,这意味着每天有3600行。问题是我不知道如何将每个分配给变量。
for i in range(58)
df = timethingdf.iloc[809+i*3600:809+(i+1)*3600]
正如您所看到的,我希望df
对于我正在制作的58个dfs中的每一个都不同。
我不知道如何制作图表。
答案 0 :(得分:1)
我认为你应该这意味着:
for i in range(58)
df = timethingdf.iloc[809+i*3600:809+(i+1)*3600]
# Doing something with `df`
答案 1 :(得分:0)
我认为你想要的是TimeGrouper
:
data = {'date':['2004-1-2:10:10:00', '2004-1-2:10:11:00', '2004-1-1:11:11:00', '2004-1-1:11:13:00'], 'foo':[5,6,7,8]}
df = pd.DataFrame(data)
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d:%H:%M:%S')
df = df.set_index('date')
grouped = df.groupby(pd.TimeGrouper('24H')).sum()
In [7]: grouped
Out[8]:
foo
date
2004-01-01 15
2004-01-02 11
然后,您可以将.sum()
替换为您要在分组子集上使用的聚合器。