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)]
我有一个包含两列的数据框,例如“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)]