Python 从Timeseries数据集到Pandas中的每小时要素数据集

Python 从Timeseries数据集到Pandas中的每小时要素数据集,python,pandas,Python,Pandas,我有一个像这样的时间序列数据框架 Timestamp X 0 2016-12-01 00:00:00 0.186090 1 2016-12-01 00:10:00 0.203160 2 2016-12-01 00:20:00 0.216228 3 2016-12-01 00:30:00 0.220723 4 2016-12-01 00:40:00 0.263620 5 2016-12-01 00:50:00 0.287217 6 2

我有一个像这样的时间序列数据框架

            Timestamp       X
0   2016-12-01 00:00:00 0.186090
1   2016-12-01 00:10:00 0.203160
2   2016-12-01 00:20:00 0.216228
3   2016-12-01 00:30:00 0.220723
4   2016-12-01 00:40:00 0.263620
5   2016-12-01 00:50:00 0.287217
6   2016-12-01 01:00:00 0.282319
7   2016-12-01 01:10:00 0.242778
8   2016-12-01 01:20:00 0.235190
9   2016-12-01 01:30:00 0.210077
10  2016-12-01 01:40:00 0.251426
11  2016-12-01 01:50:00 0.238118
12  2016-12-01 02:00:00 0.262105
13  2016-12-01 02:10:00 0.270865
14  2016-12-01 02:20:00 0.281123
15  2016-12-01 02:30:00 0.276698
16  2016-12-01 02:40:00 0.296046
17  2016-12-01 02:50:00 0.308164
18  2016-12-01 03:00:00 0.313092
19  2016-12-01 03:10:00 0.233784
Date          F1     F2        F3        F4      F5        F6       .... F145
2016-12-01 0.186090  0.203160  0.216228  0.20723 0.263620  0.287217 .........
2016-12-02 ..................................................................
我想把数据集转换成这样的东西

            Timestamp       X
0   2016-12-01 00:00:00 0.186090
1   2016-12-01 00:10:00 0.203160
2   2016-12-01 00:20:00 0.216228
3   2016-12-01 00:30:00 0.220723
4   2016-12-01 00:40:00 0.263620
5   2016-12-01 00:50:00 0.287217
6   2016-12-01 01:00:00 0.282319
7   2016-12-01 01:10:00 0.242778
8   2016-12-01 01:20:00 0.235190
9   2016-12-01 01:30:00 0.210077
10  2016-12-01 01:40:00 0.251426
11  2016-12-01 01:50:00 0.238118
12  2016-12-01 02:00:00 0.262105
13  2016-12-01 02:10:00 0.270865
14  2016-12-01 02:20:00 0.281123
15  2016-12-01 02:30:00 0.276698
16  2016-12-01 02:40:00 0.296046
17  2016-12-01 02:50:00 0.308164
18  2016-12-01 03:00:00 0.313092
19  2016-12-01 03:10:00 0.233784
Date          F1     F2        F3        F4      F5        F6       .... F145
2016-12-01 0.186090  0.203160  0.216228  0.20723 0.263620  0.287217 .........
2016-12-02 ..................................................................
也就是说,我想制作另一个包含145列的数据帧,每个列表示一天中的特定时间段
F1
表示
00:00:00
F2
表示
00:10:00
F144
表示第二天的
23:50:00
F155
表示第二天的
00:00:00

在熊猫身上实现这一目标最有效的方法是什么

可以为这些类型的任务执行数据透视,但如何使用时间戳列的数据透视?

首先通过-get
datetimes
或-get python对象日期删除时间,然后通过和创建列:

最后将列转换为计数器,并将
日期
设置为列:

df.columns = [f'F{x+1}' for x in range(len(df.columns))]
df = df.reset_index().rename_axis(None, axis=1)
print (df)
        Date       F1       F2        F3        F4       F5        F6  \
0 2016-12-01  0.18609  0.20316  0.216228  0.220723  0.26362  0.287217   

         F7        F8       F9  ...       F11       F12       F13       F14  \
0  0.282319  0.242778  0.23519  ...  0.251426  0.238118  0.262105  0.270865   

        F15       F16       F17       F18       F19       F20  
0  0.281123  0.276698  0.296046  0.308164  0.313092  0.233784  

[1 rows x 21 columns]
最后一列的最后一次使用:

df['F145'] = df['F1'].shift(-1)

哇,很好。让我试试,我会让你know@SreeramTP-解决方案因时间匹配而有所更改,抱歉:(这很有魅力,但关键是数据框只有144列,不包括日期列。我还需要第二天
00:00:00
的数据成为
F145
列。我想我可以在向上移动一次后将
F1
放在数据框的末尾,如
df['F145']=df['F1'][1:].reset_index(drop=True)
So last need
df['F145']=df['F1'].shift()
df['F145']=df['F1'].shift(-1)