Python timedelta заменяет 0 раз на строку в pandas - PullRequest
1 голос
/ 23 марта 2020

У меня есть много записей времени в столбце, которые выглядят следующим образом:

  Time 
 0 days 04:19:03      
 0 days 00:25:28     
 0 days 08:15:03 
 0 days 00:00:00

Есть несколько записей времени 00:00:00, смешанных с моими записями времени. Я хотел бы заменить их на «неполные». Но я не уверен, как это сделать, и не похож на обычный вариант использования из того, что я искал. Я попробовал приведенный ниже код, но он, похоже, не распознает 0 дней 00:00:00 для замены, поскольку значение остается прежним. Я предполагаю, что это потому, что timedelta не строка, но я не совсем уверен, как настроить.

Некоторые коды:

df.loc[:,'total_time'] = df.loc[:,'time_total'].replace('0 days 00:00:00','incomplete',inplace=True)

Ответы [ 2 ]

1 голос
/ 23 марта 2020

Прежде всего, я должен убедиться, что ваш столбец 'Time' имеет тип Timedelta

df['Time'] = pd.to_timedelta(df['Time'])

Тогда вы можете использовать mask

df.mask(df == pd.Timedelta(0), 'incomplete')

              Time
0  0 days 04:19:03
1  0 days 00:25:28
2  0 days 08:15:03
3       incomplete
​
0 голосов
/ 23 марта 2020

Попробуйте использовать pandas timedelta objest. Как это: pd.Timedelta(0)

...