Удалить строку в зависимости от времени - PullRequest
3 голосов
/ 07 апреля 2019

Я хочу знать, как удалить строку на основе столбца времени.Мой фрейм данных:

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, поэтому ожидается результат:

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

Я использую этот кодно ничего не происходит.

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

1 Ответ

3 голосов
/ 07 апреля 2019

Преобразование значений в timedeltas по to_timedelta и фильтрация по Series.between с boolean indexing:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...