是否有 pandas 函数可以按设定的时间间隔重复行?

Lau*_*n K 5 python pandas

我有一个 pandas 数据框,其中包含数据及其适用的日期时间范围:

data | start_time    | end_time
0    | 2020-01-01-00 | 2020-01-01-02
1    | 2020-01-01-05 | 2020-01-01-08
Run Code Online (Sandbox Code Playgroud)

我想将数据转换为每小时的时间序列,因此最终结果如下:

data | time    
0    | 2020-01-01-00
0    | 2020-01-01-01
0    | 2020-01-01-02
1    | 2020-01-01-05
1    | 2020-01-01-06
1    | 2020-01-01-07
1    | 2020-01-01-08
Run Code Online (Sandbox Code Playgroud)

我可以用蛮力解决这个问题,但想知道 pandas 数据帧中是否有内置功能我可以探索以帮助实现这一目标。

Chr*_*ris 4

使用pandas.date_range和pandas.DataFrame.explode:

df['time'] = df.apply(lambda x: pd.date_range(x['start_time'], x['end_time'], freq='1H'), 1)
print(df.explode('time'))
Run Code Online (Sandbox Code Playgroud)

输出:

   data     start_time       end_time                time
0     0  2020-01-01-00  2020-01-01-02 2020-01-01 00:00:00
0     0  2020-01-01-00  2020-01-01-02 2020-01-01 01:00:00
0     0  2020-01-01-00  2020-01-01-02 2020-01-01 02:00:00
1     1  2020-01-01-05  2020-01-01-08 2020-01-01 05:00:00
1     1  2020-01-01-05  2020-01-01-08 2020-01-01 06:00:00
1     1  2020-01-01-05  2020-01-01-08 2020-01-01 07:00:00
1     1  2020-01-01-05  2020-01-01-08 2020-01-01 08:00:00
Run Code Online (Sandbox Code Playgroud)