时间序列数据重新格式化
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
我正在编写一些可以重新排列时间序列的代码。目前我有一个标准的时间序列。我有一个三列,其中 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