如何处理一列整数字符串以对其应用数学运算

How to Handle a Column of string of integers to apply a mathematical operation on it

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

我不确定,但我认为您可以使用 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

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

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))

编辑:

PyGuy 解决方案更简洁,应该比我的解决方案更简洁。