Удалите ненулевые значения из столбца фрейма данных python - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть датафрейм (df), на который похожа голова:

        Date
0 01/04/2015
1 01/09/1996
2        N/A
3 12/05/1992
4  NOT KNOWN

Есть ли способ удалить значения без даты (не строки)? В этом примере результирующий кадр будет выглядеть так:

        Date
0 01/04/2015
1 01/09/1996
2        
3 12/05/1992
4  

Все примеры, которые я вижу, хотят, чтобы я отбросил строки, и я бы хотел их сохранить.

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Еще один простой способ обойти ..

>>> df
         Date
0  01/04/2015
1  01/09/1996
2         N/A
3  12/05/1992
4   NOT KNOWN

>>> df['Date'] = pd.to_datetime(df['Date'], errors='coerce').fillna('')
>>> df
                  Date
0  2015-01-04 00:00:00
1  1996-01-09 00:00:00
2
3  1992-12-05 00:00:00
0 голосов
/ 05 ноября 2018

pd.to_datetime

С errors='coerce'

df.assign(Date=pd.to_datetime(df.Date, errors='coerce'))

        Date
0 2015-01-04
1 1996-01-09
2        NaT
3 1992-12-05
4        NaT

Вы можете заполнить эти NaT пустыми строками, если хотите (хотя я не рекомендую это)

df.assign(Date=pd.to_datetime(df.Date, errors='coerce').fillna(''))

                  Date
0  2015-01-04 00:00:00
1  1996-01-09 00:00:00
2                     
3  1992-12-05 00:00:00
4                     

Если вы хотите сохранить то, что было в вашем фрейме данных, и просто заменить вещи, которые не похожи на даты, на ''

df.assign(Date=df.Date.mask(pd.to_datetime(df.Date, errors='coerce').isna(), ''))

         Date
0  01/04/2015
1  01/09/1996
2            
3  12/05/1992
4            
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...