Как удалить строку со значением timedelta ниже 0? - PullRequest
1 голос
/ 02 октября 2019

Как я могу удалить строки, имеющие значения timedelta <0: </p>

Index     Date/Time               id           Timedelta
8      2019-09-09 07:31:37.979  2555        0 days 00:40:00.033000
9      2019-09-09 07:32:38.006  2555        0 days 00:01:00.027000
10     2019-09-09 07:32:37.938  2555        -1 days +23:59:59.932000
11     2019-09-09 11:22:38.154  2555        0 days 03:50:00.216000
12     2019-09-09 13:04:38.138  2555        0 days 01:41:59.984000

Желаемый результат:

Index     Date/Time               id           Timedelta
8      2019-09-09 07:31:37.979  2555        0 days 00:40:00.033000
9      2019-09-09 07:32:38.006  2555        0 days 00:01:00.027000
11     2019-09-09 11:22:38.154  2555        0 days 03:50:00.216000
12     2019-09-09 13:04:38.138  2555        0 days 01:41:59.984000

Спасибо

1 Ответ

1 голос
/ 02 октября 2019

Используйте boolean indexing с 'inverse' логикой - отфильтруйте все строки с Timedelta выше или равным 0:

df1 = df[df['Timedelta'] >= pd.Timedelta(0)]

Или сравните дни по Series.dt.days:

df1 = df[df['Timedelta'].dt.days >= 0]
...