在Python中将时间序列转换为数据帧

时间:2018-02-23 15:58:38

标签: pandas

我有一个有两列的时间序列数据集。第一列是时间戳,第二列是数据。时间戳按分钟排序,涵盖整年。

Timestamp           Data
1/1/2017   0:00        50
1/1/2017   0:01        80
...
12/31/2017 23:59     100

所以现在我希望将数据集重新排列到一个表,每个列代表不同的日期,但行仍然代表每分钟的数据。新数据集将类似于

      1/1  1/2  1/3 .......  12/31
0:00  50   60   34  .......  67
0:01  34   211  90  .......  90
...
23:59

有没有办法快速做到这一点?

1 个答案:

答案 0 :(得分:2)

首先将“时间戳”列拆分为日期和时间。如何做到这一点取决于它是真正的时间戳还是字符串。如果是时间戳,请执行(使用'Date'作为列名以避免与内置'时间戳'的pandas混淆

df['Day'] = df['Date'].map(pd.Timestamp.date)
df['Time'] = df['Date'].map(pd.Timestamp.time)
del df['Date']

请使用pivot_table:

pd.pivot_table(df, values='Data', index=['Time'], columns=['Day'])