Python Pandas - получить самые старые данные в фрейме данных и игнорировать None типов при поиске? - PullRequest
0 голосов
/ 30 августа 2018

я пытаюсь получить самую старую дату во фрейме данных, и я видел ее возможным с помощью следующего: -

min(s2s_vpn_data['LastPollTime'])

образец данных ниже:

>>> s2s_vpn_data
   id  device name       public_ip     upload                LastPollTime NodeID   download status                          connected_time
0   1  XXXX   XXXX         2.2.2.2   7.48 Bit  2018-08-30 15:13:02.900000   1782   7.48 Bit   True  1 Months, 2 Days, 19 Hours, 25 Minutes
1   3  XXXX   XXXX         3.3.3.3  23.46 KiB  2018-08-30 15:10:26.900000   1782  27.31 PiB   True  1 Months, 2 Days, 19 Hours, 25 Minutes
2   4  XXXX   test         1.1.1.1       None                        None   None       None   None                                    None
>>> type(s2s_vpn_data.ix[0]["LastPollTime"])
<class 'datetime.datetime'>

однако, поскольку у меня есть тип как None, я вижу ошибку:

TypeError: '<' not supported between instances of 'NoneType' and 'datetime.datetime'

есть ли способ игнорировать None-типы при поиске в идеале, я должен просто получить приведенное ниже

2018-08-30 15:10:26.900000

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Вы можете отбросить None, выполняя свой мин:

s2s_vpn_data['LastPollTime'].dropna().min()
0 голосов
/ 30 августа 2018

Если ряд (столбец) содержит как datetime, так и None, dtype серии, скорее всего, на самом деле object. Используйте pd.to_datetime для преобразования всех типов в допустимые объекты datetime / Timestamp. Это автоматически преобразует ваши значения None в NaT, которые затем будут игнорироваться при использовании метода .min:

df["LastPollTime"] = pd.to_datetime(df["LastPollTime"])
df["LastPollTime"].min()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...