Python Pandas: 无法减去列值

Python Pandas: Can't subtract column values

我有一个包含两列的数据框,例如“value1,value2”。
两者都是字符串(例如:'100,50''100,10'),但我的代码中有一部分必须检查两者之间的差异是否小于或等于 1.0.

df = df.assign(difference = df['value1'] - df['value2'])
new_df = df [(df.difference <= 1.0)]

有一些方法可以将字符串转换为 float 类型,但没有奏效。

我尝试在循环中使用 pandas.astype(float) 和 locale.atof。但是终端说:ValueError: could not convert string to float: '482,43'

pds.to_numeric(valor_false_df['VR CMS'], downcast="float")

它说 ValueError: Unable to parse string "482,43" at position 0.

我怎样做这个减法?我哪里错了?

我认为 pandas 将逗号解释为逗号,而不是小数分隔符。如果用句号替换逗号然后转换为浮点数,它应该可以工作(来自 a similar Whosebug answer):

df['value1'] = df['value1'].str.replace(',', '.').astype(float)
df['value2'] = df['value2'].str.replace(',', '.').astype(float)
df = df.assign(difference = df['value1'] - df['value2'])
new_df = df [(df.difference <= 1.0)]