时间序列数据重新格式化

Time Series Data Reformat

我正在编写一些可以重新排列时间序列的代码。目前我有一个标准的时间序列。我有一个三列,其中 header 是 [Date, Time, Value]。我想重新格式化数据框以使用日期索引并使用 header 和时间(即 0:00、1:00、...、23:00)。数据框将填充值。

这是目前的Dataframe

基本上我想将索引移动到一天并通过列显示小时数。

谢谢,

使用pivot:

df = df.pivot(index='Date', columns='Time', values='Total')

输出(前 10 列和 Total 的随机值):

>>> df.pivot(index='Date', columns='Time', values='Total').iloc[0:10]
time        00:00:00  01:00:00  02:00:00  03:00:00  04:00:00  05:00:00  06:00:00  07:00:00  08:00:00  09:00:00
date                                                                                                          
2019-01-01  0.732494  0.087657  0.930405  0.958965  0.531928  0.891228  0.664634  0.432684  0.009653  0.604878
2019-01-02  0.471386  0.575126  0.509707  0.715290  0.337983  0.618632  0.413530  0.849033  0.725556  0.186876

你可以试试这个。 拆分时间部分以仅获得小时。添加hr

df = pd.DataFrame([['2019-01-01', '00:00:00',-127.57],['2019-01-01', '01:00:00',-137.57],['2019-01-02', '00:00:00',-147.57],], columns=['Date', 'Time', 'Totals'])
df['hours'] = df['Time'].apply(lambda x: 'hr'+ str(int(x.split(':')[0])))
print(pd.pivot_table(df, values ='Totals', index=['Date'], columns = 'hours'))

输出

hours          hr0     hr1
Date                      
2019-01-01 -127.57 -137.57
2019-01-02 -147.57     NaN