【问题标题】:Converting Fractions in a Dataframe Series to Float将数据框系列中的分数转换为浮点数
【发布时间】:2019-08-16 08:43:06
【问题描述】:

在 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

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

【问题讨论】:

    标签: python pandas dataframe fractions


    【解决方案1】:

    eval 的魔力来自pandas

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

    【讨论】:

    • 太棒了,做到了!谢谢。
    • 不错,很简单,我不知道 eval
    【解决方案2】:

    或者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
    

    【讨论】:

      【解决方案3】:

      试试下面:

      df = df.fillna(1000.0)

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

      【讨论】:

        【解决方案4】:
        df['b'] = pd.eval(df['b'].fillna(1000.0))
        df.head()

        【讨论】:

        • 您还应该添加解释
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-06
        • 2018-12-09
        • 2021-04-26
        • 2013-10-02
        相关资源
        最近更新 更多