【发布时间】:2017-12-07 19:49:41
【问题描述】:
我正在尝试绘制从我的公用事业提供商下载的一年的公用事业数据。数据以矩阵形式提供,其中每一行是不同的日期(最近在顶部),每一列是一天中的一个小时(上午 11:00、下午 12:00、下午 1:00 等)。我想将此 2D DataFrame 转换为 1D Timeseries,然后绘制系列。
使用 .stack() 让我很接近,但我似乎无法在它们堆叠后从日期和时间列创建日期时间。此外,在绘制时,它从左到右正确绘制小时,但日期从左到右递减。例如,它绘制 25 日(凌晨 1 点、凌晨 2 点、凌晨 3 点等)、24 日(凌晨 1 点、凌晨 2 点、凌晨 3 点等)、23 日(凌晨 1 点、凌晨 2 点、凌晨 3 点等)。我确信这会在创建真正的日期时间后自行修复。
下面的代码生成了一个小样本 df,但在真实数据集中,所有 24 小时都是列,一年中的所有日期都是行。
df=pd.DataFrame({'Date':['06/25/17','06/24/17','06/23/17'], '12:00 AM':
[1,2,3],'1:00 AM':[4,5,6],'2:00 AM':[7,8,9],})
df.set_index(['Date'], inplace = True)
df
目标是创建一个序列,其中索引是时间序列,实用程序使用是数据。
谢谢!
【问题讨论】:
-
正确的最终格式将按时间顺序排列,而不是按数据值排序:06/23/17 12:00 3 06/23/17 1:00 6 06/23/17 2 :00 9 06/24/17 12:00 2 06/24/17 1:00 5 06/24/17 2:00 8 等
-
查看我修改后的帖子。最初,我忘记将索引转换为时间戳。一旦数据类型正确,您就可以按时间顺序绘制,而不管数据框中的顺序如何。