由于 pandas 列中的差异,日期时间发生变化

Change in datetimetime in, due to difference in pandas column

我想获取以下样本数据的时间变化率:

datetime        | value 
2020-03-01:00   | 20
2020-03-02:01   | 21
2020-03-03:02   | 19.3
2020-03-04:03   | 22
2020-03-05:04   | 23.7
2020-03-06:05   | 30

示例答案应创建一个名为“时间变化”的新列。当“值”列高于特定范围(例如 20)时,应更新此列。

示例答案如下:

datetime        | value  | change in time
2020-03-01:00   | 20     |   -
2020-03-02:01   | 21     |  1mins
2020-03-03:02   | 19.3   |  0mins
2020-03-04:03   | 22     |  1mins
2020-03-05:04   | 23.7   |  1mins
2020-03-06:05   | 30     |  1mins

使用 Series.diff wth convert to seconds by Series.dt.total_seconds 然后替换为 0 如果值低于 20,最后除以 60 分钟:

#change format by data, here is used YYYY-MM-DD:HH
df['datetime'] = pd.to_datetime(df['datetime'], format='%Y-%m-%d:%H')
    

df['change in time'] = (df['datetime'].diff()
                                      .dt.total_seconds()
                                      .mask(df['value'].lt(20), 0)
                                      .div(60))