在熊猫的下部方法中,如何确保数值不被NaN代替?

时间:2020-07-10 11:56:22

标签: pandas

我有这样的数据集:

Login:
ABC
123a
12

我写了代码:

def fun(x):
    if x.str.isdigit():
        return x
    else:
        return x.str.lower()

Dataset['Login'].apply(fun)

我有这个结果:

Login:
abc
123a
NaN

如何去除NaN以便有数字?

1 个答案:

答案 0 :(得分:1)

我认为这里可能使用try-except语句来获得较低的值,否则返回相同的值:

Dataset = pd.DataFrame({'Login':['ABC','123a',12]})
    
def fun(x):
    try:
       return x.lower()
    except:
       return x
   
Dataset['Login'] = Dataset['Login'].apply(fun)
print (Dataset)
  Login
0   abc
1  123a
2    12

使用Series.str.lowerSeries.fillna的另一种解决方案:

Dataset['Login'] = Dataset['Login'].str.lower().fillna(Dataset['Login'])
print (Dataset)
  Login
0   abc
1  123a
2    12