Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从DataFrame中具有行值的列表生成中删除NaN值_Python_Python 3.x_Pandas - Fatal编程技术网

Python 如何从DataFrame中具有行值的列表生成中删除NaN值

Python 如何从DataFrame中具有行值的列表生成中删除NaN值,python,python-3.x,pandas,Python,Python 3.x,Pandas,休伊兄弟们 我在pandas中有一个列,它是一个列表,其中包含行中的所有值。 作为下面的示例 print(df4['List']) 0 [8,9,10,25,14,25,14,17,19,30] 1 [nan,85,48,75,nan,96,32,14,15,21,28,17,nan] 2 [nan,85,48,75,nan,] 3 [1,nan] 4 [85,75,41,nan] 5 [nan,65,34] 如何从列表中删除这些“nan”值 我在python中尝试了一些传统的列表方法,但

休伊兄弟们

我在pandas中有一个列,它是一个列表,其中包含行中的所有值。 作为下面的示例

print(df4['List']) 

0 [8,9,10,25,14,25,14,17,19,30]
1 [nan,85,48,75,nan,96,32,14,15,21,28,17,nan]
2 [nan,85,48,75,nan,]
3 [1,nan]
4 [85,75,41,nan]
5 [nan,65,34]
如何从列表中删除这些“nan”值

我在python中尝试了一些传统的列表方法,但是我不知道 使其在数据帧中具有相同的结果

正如这一条:

while True:
    try:
        df4['PNs NaNs Removed'] = df4['List'].delete([nan])
    except ValueError:
        break

我试图通过使用Series.dropna函数来避免迭代:

def no_nan(listy):
    return list(pd.Series(listy).dropna())

df4['List'] = df4['List'].apply(no_nan)

我试图通过使用Series.dropna函数来避免迭代:

def no_nan(listy):
    return list(pd.Series(listy).dropna())

df4['List'] = df4['List'].apply(no_nan)

事实证明,有许多不同的方法来指示和处理
NaN
值,而且可能会变得非常混乱。此解决方案使用
pandas.isna()
测试值,该方法适用于比
numpy.isnan()
更广泛的值

将熊猫作为pd导入
df4['List']=df4['List'].应用(lambda列值:[列值中的项目,如果不是pd.isna(项目)])

事实证明,有许多不同的方法来指示和处理
NaN
值,而且可能会变得非常混乱。此解决方案使用
pandas.isna()
测试值,该方法适用于比
numpy.isnan()
更广泛的值

将熊猫作为pd导入
df4['List']=df4['List'].应用(lambda列值:[列值中的项目,如果不是pd.isna(项目)])

为什么要将列表存储在数据框中?您想做什么?我创建了一个列,其中包含一个列表,其中包含第行中的值。所以我想从这个列中删除这些“nan”值并保留有效值。我理解您的问题,我很好奇为什么您首先要将列表存储在数据框中。列表中的值是实际的NaN值,不是像“NaN”这样的字符串吗?为什么要将列表存储在数据帧中?您想做什么?我创建了一个列,其中包含一个列表,其中包含第行中的值。所以我想从这个列中删除这些“nan”值并保留有效值。我理解您的问题,我很好奇为什么您首先要将列表存储在数据框中。您列表中的值是实际的NaN值,对吧,不是像“NaN”这样的字符串?代码运行时没有错误,但是NaNvalues在列表中。这很奇怪,它对我有效。如果创建一个新列,即df4['List2']=df4['List'].apply(否)?
KeyError:'List2'
我自己实际上刚刚找到一个列:转换为序列可能会弄乱类型。我测试的示例是一个整数和
Nan
s的列表,它将整数转换为浮点数。所以这是需要注意/小心的。@mermaldad我不知道为什么我在发表评论时没有运行一些基准测试。我也和你一样直觉,它应该更快,我明天会对它进行基准测试并报告回来!代码运行时没有错误,但是列表中有nanvalue。奇怪的是,它对我有效。如果创建一个新列,即df4['List2']=df4['List'].apply(否)?
KeyError:'List2'
我自己实际上刚刚找到一个列:转换为序列可能会弄乱类型。我测试的示例是一个整数和
Nan
s的列表,它将整数转换为浮点数。所以这是需要注意/小心的。@mermaldad我不知道为什么我在发表评论时没有运行一些基准测试。我也和你一样直觉,它应该更快,我明天会对它进行基准测试并报告回来!