我有一个看起来像这样的数据框
Date MBs GBs
0 2018-08-14 20:10 32.00 MB 0.00 GB
1 2018-08-14 20:05 4.00 MB 0.00 GB
2 2018-08-14 20:00 1000.99 MB 1.23 GB
我已经做到了:
na_aus['Date'] = pd.to_datetime(na_aus['Date'], format='%Y-%m-%d %H:%M:%S')
但是当我尝试做一个像这样的简单过滤器时:
na_aus.loc['2018-08-14 19:50' : '2018-08-14 20:10']
我得到的是:
Date MBs GBs
无数据返回。
我尝试遵循此Select dataframe rows between two dates,但不起作用
答案 0 :(得分:1)
使用.between
:
na_aus.loc[na_aus['Date'].between('2018-08-14 19:50','2018-08-14 20:10')]
在您的情况下,所有行均满足要求:
Date MBs GBs
0 2018-08-14 20:10:00 32.00 MB 0.00 GB
1 2018-08-14 20:05:00 4.00 MB 0.00 GB
2 2018-08-14 20:00:00 1000.99 MB 1.23 GB
但是,如果您不希望它包含边界,请设置inclusive=False
。这意味着,由于第0行是您范围的确切边界,因此不会包含该行:
>>> na_aus.loc[na_aus['Date'].between('2018-08-14 19:50', '2018-08-14 20:10',
inclusive=False)]
Date MBs GBs
1 2018-08-14 20:05:00 4.00 MB 0.00 GB
2 2018-08-14 20:00:00 1000.99 MB 1.23 GB