为给定数据创建时间点

时间:2015-01-17 17:46:45

标签: python pandas

我有一个pandas DataFrame df,如:

Typ1 Typ2 Typ3

10 50 60

20 100 80

75 80 20

......等等(一年有8760行,8760小时)。 这意味着,第一行是2012-01-01 00:00:00的值,第二行显示2012-01-01 00:01:00的值,依此类推。

我有两点:

FIRST:

现在,我希望从特定年份的1月1日到12月31日创建Timestemps并将其添加到值之外。 我怎么能管理那个?我尝试使用pd.date_range(),但我只有日期,而不是时间。

第二

最后,从时间流逝来看,我需要在讨论的一年中特定小时的工作日,或者从第一步开始的Timestemp。 但我不知道,我怎么能“导入”这些信息,工作日x,y等小时是什么?!

最后,我的DataFrame应该看起来像(2012年):

工作日Typ1 Typ2 Typ3

星期日10 50 60

星期日20 100 80

星期日75 80 20

......等到2012年12月31日'星期一'为第8760小时。 (2013年将从星期二开始)

1 个答案:

答案 0 :(得分:1)

我相信你想要的是

pd.date_range('2012-01-01','2012-12-31', freq='T')

有关不同的频率选择,请参阅此处http://pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases

将此附加到您的数据框:

df['Timestamp'] = pd.date_range('2012-01-01','2012-12-31', freq='T')

如果您想将其用作索引

df.set_index('Timestamp', inplace=True)

关于你的第二个问题。您可以从时间戳中检索工作日。

x = pd.date_range('2012-01-01','2012-12-31', freq='T')
x.weekday
然后

会给你一个数值为0,1,...,6的数组代表相应的工作日。