我有这样的数据框:
score year
5/5 2019
1/2 2018
A 2019
我想将分数从字符串转换为浮点数,例如5/5 = 1、1 / 2 = 0.5,我尝试了to_numeric,但是由于我的值是a / b形式,因此没有返回。请帮助我。
答案 0 :(得分:4)
您可以将pandas.eval
与try-except
语句一起使用:
def func(x):
try:
return pd.eval(x)
except Exception:
#for return original
return x
#for return None
#return None
df['new'] = df['score'].apply(func)
print (df)
score year new
0 5/5 2019 1
1 1/2 2018 0.5
2 A 2019 A
如果只有分部是@Goyo的更快解决方案,谢谢:
import operator
def func(x):
try:
return operator.truediv(*map(int, x.split('/')))
except Exception:
#for return original
return x
#for return None
#return None