转换a / b字符串以大熊猫形式漂浮

时间:2019-03-08 08:31:39

标签: python string pandas dataframe

我有这样的数据框:

        score  year
         5/5   2019
         1/2   2018
          A    2019

我想将分数从字符串转换为浮点数,例如5/5 = 1、1 / 2 = 0.5,我尝试了to_numeric,但是由于我的值是a / b形式,因此没有返回。请帮助我。

1 个答案:

答案 0 :(得分:4)

您可以将pandas.evaltry-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