根据时间删除行 [英] Drop row based on time

查看:83
本文介绍了根据时间删除行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道如何根据时间列删除行.我的数据框:

I want to know how to drop row based on time column. My dataframe:

df
ID   Time
ID1 9:00:00
ID2 10:00:00
ID3 11:00:00
ID4 12:00:00
ID5 13:00:00
ID6 14:00:00
ID7 15:00:00
ID8 16:00:00
ID9 17:00:00

我想消除低于 11:00:00 和高于 15:00:00 的行,因此预期结果:

I want to eliminate row below than 11:00:00 and above 15:00:00, so expected a result:

Result
ID   Time
ID3 11:00:00
ID4 12:00:00
ID5 13:00:00
ID6 14:00:00
ID7 15:00:00

我使用此代码但没有任何反应.

I use this code but nothing happens.

df = pd.read_csv('data.csv')
index_list= df.Time[(df.Time < "09:00:00") & (df.Time > "17:00:00")].index.tolist()
df.drop(df.index[index_list] , inplace = True)
df

推荐答案

通过 to_timedelta 并通过 Series.between布尔索引:

df = pd.read_csv('data.csv')

df['Time'] = pd.to_timedelta(df['Time'])
print (df.dtypes)
ID               object
Time    timedelta64[ns]
dtype: object

df = df[df['Time'].between('11:00:00','15:00:00')]
print (df)
    ID     Time
2  ID3 11:00:00
3  ID4 12:00:00
4  ID5 13:00:00
5  ID6 14:00:00
6  ID7 15:00:00

这篇关于根据时间删除行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆