"Python Pandas - 查找数据框中最旧的数据并在搜索时忽略无类型的值?"

2024-04-26 17:48:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在数据框中获取最早的日期,我已经看到了以下可能的情况:-

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'>

但是,由于我的类型为“无”,因此我看到了错误:

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

有没有一种方法可以在搜索时忽略None类型?理想情况下,我应该返回以下内容

2018-08-30 15:10:26.900000

Tags: 数据nonetruedatadatetimebit情况vpn
2条回答

如果序列(列)同时包含datetimes和None,则序列的数据类型实际上可能是object。使用pd.to_datetime将所有类型转换为有效的datetime/Timestamp对象。这将自动将None值转换为NaT,然后在使用.min方法时将忽略该值:

df["LastPollTime"] = pd.to_datetime(df["LastPollTime"])
df["LastPollTime"].min()

您可以在执行min时删除None:

s2s_vpn_data['LastPollTime'].dropna().min()

相关问题 更多 >