Python 如何将浮点列表转换为整数。当存在NaN值时!我从pandas dataframe中得到这个列表,它有一些空值

Python 如何将浮点列表转换为整数。当存在NaN值时!我从pandas dataframe中得到这个列表,它有一些空值,python,pandas,list,dataframe,nan,Python,Pandas,List,Dataframe,Nan,我试图制作第三个列表,它是2个列表的交集(这个列表是我从pandas dataframe获得的)。现在对于列表2,它是浮点型的,第一个是整数,现在如果我尝试比较它们,第三个将是空的。我试图将list2转换为整数,但这会为NaN抛出一个错误(“无法将浮点NaN转换为整数”)。现在,如何将列表2转换为整数列表 这是第二个列表的快照 这是我的代码: def交叉口(lst1、lst2): lst3=[如果lst2中的值为lst1中的值,则lst1中的值为lst2中的值] 返回lst3 list1_NY=

我试图制作第三个列表,它是2个列表的交集(这个列表是我从pandas dataframe获得的)。现在对于列表2,它是浮点型的,第一个是整数,现在如果我尝试比较它们,第三个将是空的。我试图将list2转换为整数,但这会为NaN抛出一个错误(“无法将浮点NaN转换为整数”)。现在,如何将列表2转换为整数列表

这是第二个列表的快照

这是我的代码:

def交叉口(lst1、lst2):
lst3=[如果lst2中的值为lst1中的值,则lst1中的值为lst2中的值]
返回lst3
list1_NY=df.New_york.values.tolist()
list2_NY=df.NY_11220.values.tolist()
list2_NY=[int(x)表示list2_NY中的x]
com\U list\U NY=交叉点(列表1\U NY、列表2\U NY)

您可以使用
math.isnan(x)
(请参阅)从列表2中检测并过滤出NaN:

import math

def intersection(lst1, lst2):
    lst3 = [value for value in lst1 if value in lst2]
    return lst3

#list1_NY = df.New_york.values.tolist()
list1_NY = [123, 567]
#list2_NY = df.NY_11220.values.tolist()
list2_NY = [123.0, 234.0, float('NaN')]
list2_NY = [int(x) for x in list2_NY if not math.isnan(x)]
com_list_NY = intersection(list1_NY, list2_NY)

print(com_list_NY)

输出
[123]
,这对于我硬编码的值来说是正确的。

首先,您必须决定如何处理NaN值。您能显示您尝试的代码吗?而不仅仅是NaN值。更一般地说,您打算用round、floor或ceil处理非整数值吗?将超出范围的值钳制为INT_MIN和INT_MAX或将其视为无效?请使用代码块格式将代码编辑到问题中,以便我们可以阅读。这是否回答了您的问题?