我有这样的数据集:
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以便有数字?
答案 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.lower
和Series.fillna
的另一种解决方案:
Dataset['Login'] = Dataset['Login'].str.lower().fillna(Dataset['Login'])
print (Dataset)
Login
0 abc
1 123a
2 12