【问题标题】:How to Handle a Column of string of integers to apply a mathematical operation on it如何处理一列整数字符串以对其应用数学运算
【发布时间】:2021-06-15 17:32:49
【问题描述】:

我有一个数据作为字符串的列。我想用它们的实际比率替换所有这些值,即 '6.2/5.1' 到 1.2156 即除法后的实际值,因为我不能直接在我的模型中使用原始值。我尝试使用 strip 函数拆分字符串,但我不明白如何用正确位置的值替换它。

【问题讨论】:

    标签: python pandas data-science data-cleaning feature-selection


    【解决方案1】:

    我不确定,但我认为您可以使用 evalapply 来完成工作。

    df['DELTA-T(L/R)'].apply(eval)
    

    更新: 我试过了,它有效.. 这是示例:

    df = pd.DataFrame({'ratio': ['1.2/.25', '1/2',  '2/3']})
    df
         ratio
    0  1.2/.25
    1      1/2
    2      2/3
    df['ratio'].apply(eval)
    0    4.800000
    1    0.500000
    2    0.666667
    Name: ratio, dtype: float64
    

    【讨论】:

      【解决方案2】:

      我会创建一个方法来完成您想要完成的任务,例如:

      def convert_to_float(s):
        nums = s.split("/")
        return float(nums[0]) / float(nums[1])
      
      s = '6.2/5.1'
      convert_to_float(s)
      >  1.215686274509804
      

      然后你可以使用 pandas 中的 apply 方法:

      df['DELTA-T(L/R)'].apply(lambda x: convert_to_float(x))
      

      编辑:

      ThePyGuy 解决方案更简洁,应该在我的基础上使用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多