我有一个假期列表,对于每个假期,我想将其缩减到几分钟。我想将它与另一个包含分钟数据的表合并。
holidays.head()
看起来像:
day holiday
2012-02-20 00:00:00-05:00 1
2012-04-06 00:00:00-04:00 1
2012-05-28 00:00:00-04:00 1
2012-07-04 00:00:00-04:00 1
2012-09-03 00:00:00-04:00 1
所需:
day holiday
2012-02-20 00:00:00-05:00 1
2012-02-20 00:01:00-05:00 1
2012-02-20 00:02:00-05:00 1
2012-02-20 00:03:00-05:00 1
2012-02-20 00:04:00-05:00 1
2012-02-20 00:05:00-05:00 1
..
2012-04-06 00:00:00-04:00 1
2012-04-06 00:01:00-04:00 1
2012-04-06 00:02:00-04:00 1
此:
holidays.resample('T').ffill()
不足以在整个日期范围内制作分钟数据,而不仅仅是假期。
我的尝试:
holidays.resample('D').apply(lambda x: x.resample('T').ffill())
不起作用。
任何人都有更好的主意吗?
答案 0 :(得分:0)
两个步骤(df是您的假期数据帧)
v=df.day.str[-4].astype(int)+1
df1=pd.DataFrame({'day':df.day.repeat(v),'holiday':df.holiday.repeat(v)})
df1.day=df1.day.str[:-4]+df1.groupby('day').cumcount().astype(str)+df1.day.str[-3:]
df1
Out[803]:
day holiday
0 2012-02-20 00:00:00-00:00 1
0 2012-02-20 00:00:00-01:00 1
0 2012-02-20 00:00:00-02:00 1
0 2012-02-20 00:00:00-03:00 1
0 2012-02-20 00:00:00-04:00 1
0 2012-02-20 00:00:00-05:00 1
1 2012-04-06 00:00:00-00:00 1
1 2012-04-06 00:00:00-01:00 1
1 2012-04-06 00:00:00-02:00 1
1 2012-04-06 00:00:00-03:00 1
1 2012-04-06 00:00:00-04:00 1