由于 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))
我想获取以下样本数据的时间变化率:
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))