将 Dataframe 系列中的分数转换为浮点数

Converting Fractions in a Dataframe Series to Float

在 Python 3.x 中,如何将包含分数字符串和 NaN 值的 Dataframe 列转换为浮点数?我尝试了一些方法,但没有找到合适的解决方案。

所以如果我有一个数据框,"df",它看起来像:

     a      b
0   John   20/1
1   Bob    NaN
2   Tim    9/2

我怎样才能使 df 看起来像:

      a      b
0   John   20.0
1   Bob    1000.0
2   Tim    4.5

感谢您愿意提供的任何指导!

来自 pandas

eval 的魔法
df.b=pd.eval(df.b.fillna(1000))
df
Out[25]: 
      a     b
0  John    20
1   Bob  1000
2   Tim   4.5

apply:

df.b = df.b.fillna(1000).apply(pd.eval)

现在:

print(df)

是:

      a       b
0  John    20.0
1   Bob  1000.0
2   Tim     4.5

尝试以下:

df = df.fillna(1000.0)

df.b = [eval(str(e)) for e in df.b]

df['b'] = pd.eval(df['b'].fillna(1000.0))
df.head()