Python:从字符串数组中删除np-nan值

2024-09-29 01:36:48 发布

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

如何从字符串数组中删除np-nan值?在

我创建了一个列表,在这个列表中,我附加了基于另一个DF的DF中不存在的值。在

例如:

NotPresent = [Alan, Susie, nan, nan, nan] 

我希望能够将列表转换为:

^{pr2}$

在Python中实现这一点的最简单方法是什么?在

谢谢


Tags: 方法字符串df列表np数组nanalan
3条回答

您可以使用filter

import numpy as np

NotPresent = ["Alan", "Susie", np.nan, np.nan, np.nan] 

NotPresent = list(filter(lambda i: not i is np.nan, NotPresent))

print(NotPresent)

输出:

^{pr2}$

如果你真的是pandas DataFrame,那么你可以使用dropna()

>>> import pandas as pd
>>> import numpy as np
>>> data = [['Alan'], ['Suzie'], [np.nan], [np.nan]]
>>> df = pd.DataFrame(data, columns=['col1'])
>>> df
    col1
0   Alan
1  Suzie
2    NaN
3    NaN
>>> df.dropna()
    col1
0   Alan
1  Suzie

其他人用列表中的nan的版本来回答。这里有一种使用nanfrom numpy的替代方法

^{pr2}$

如果nan=np.nan公司然后:

import numpy as np
import math
NotPresent = ["Alan", "Susie", np.nan, np.nan, np.nan] 
print(NotPresent)
n = len(NotPresent)
j = -1
for i in range(n):
  j += 1
  if not isinstance(NotPresent[j], str) and math.isnan(NotPresent[j]):
    del NotPresent[j]
    j = j-1
print(NotPresent)

输出将是:

['Alan', 'Susie', nan, nan, nan]

['Alan', 'Susie']

如果“nan”是字符串,则:

^{pr2}$

输出将是:

['Alan', 'Susie', "nan", "nan", "nan"]

['Alan', 'Susie']

相关问题 更多 >