我的数据框看起来像 -
date value
2018-04-01 19:50:00.013 29
2018-04-01 19:55:00.012 19
2018-04-01 20:00:00.019 20
2018-04-01 20:05:00.021 43
2018-04-01 20:10:00.005 50
2018-04-01 20:15:00.019 42
2018-04-01 20:20:00.023 65
2018-04-01 20:25:00.013 43
2018-04-01 20:30:00.003 29
2018-04-01 20:35:00.008 49
....
...
2020-04-10 05:45:00.018 639
2020-04-10 05:50:00.008 633
2020-04-10 05:55:00.021 629
2020-04-10 06:00:00.008 619
2020-04-10 06:05:00.011 610
我有近两年的数据,该数据集的时间间隔是 5 分钟。我只想获取这 2 年期间早上 6 点到晚上 8 点存在的数据。我的最终数据框看起来像 -
date value
2018-04-01 19:50:00.013 29
2018-04-01 19:55:00.012 19
2018-04-01 20:00:00.019 20
2020-04-10 06:00:00.008 619
2020-04-10 06:05:00.011 610
到目前为止我已经完成了 -
获取最小和最大日期 -
max(df['date'])
max(df['date'])
mask1 = df['date'] >= '2018-04-01 06:00:00'
mask2 = df['date'] <= '2020-04-10 20:00:00'
df = df[mask1 & mask2]
df.head()
但是它不起作用
最佳答案
使用DataFrame.between_time
使用 DatetimeIndex
,因此将 Date
转换为索引:
df = df.set_index('date').between_time('06:00','20:00')
print (df)
value
date
2018-04-01 19:50:00.013 29
2018-04-01 19:55:00.012 19
2020-04-10 06:00:00.008 619
2020-04-10 06:05:00.011 610
关于python - 在python中过滤日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61321563/