如何从两个时间戳包含之间的数据框中删除所有行?
我的Dataframe看起来像:
b a
0 2016-12-02 22:00:00 19.218519
1 2016-12-02 23:00:00 19.171197
2 2016-12-03 00:00:00 19.257836
3 2016-12-03 01:00:00 19.195610
4 2016-12-03 02:00:00 19.176413
例如:我想删除时间戳落在上面的数据帧中的所有行:" 2016-12-02 22:00:00"到" 2016-12-03 00:00:00"。 因此,结果将只包含第3行和第4行。
b列的类型是datetime64,a的类型是float。
请建议。
答案 0 :(得分:2)
你可以过滤掉那些:
from_ts = '2016-12-02 22:00:00'
to_ts = '2016-12-03 00:00:00'
df = df[(df['b'] < from_ts) | (df['b'] > to_ts)]
答案 1 :(得分:0)
将列b转换为datetime,然后应用蒙版
df.b = pd.to_datetime(df.b, format = '%Y-%m-%d %H:%M:%S')
df[(df.b < '2016-12-02 22:00:00') | (df.b > '2016-12-03 00:00:00')]
b a
3 2016-12-03 01:00:00 19.195610
4 2016-12-03 02:00:00 19.176413
答案 2 :(得分:0)
index_list= df.b[(df.b >= "2016-12-02 22:00:00") & (df.b <= "2016-12-03 00:00:00")].index.tolist()
df.drop(df.index[index_list] , inplace = True)