首页 > 解决方案 > Replace 方法至少需要两个参数

问题描述

我的 python 代码返回以下错误。

TypeError: replace() takes at least 2 arguments (1 given)

这是导致此错误的行,它基本上删除了逗号,将其替换为点并将其转换为浮点数

v=str.replace(',', '.').astype('float')

在我有以下行之前,它工作得很好,但它错过了到浮动部分的转换

v=v.replace(',', '.')

标签: pythonpandascsv

解决方案


那么不清楚v你的问题是什么?,但鉴于错误,我猜它是一个字符串,您需要将其转换为浮点数

所以你需要做以下事情:

v='5,458'
v=float(v.replace(',','.'))
print(v)
print(type(v))

输出

5.458
<class 'float'>

在您的情况下导致错误的行是错误的,因为它用于熊猫列转换,如果v应该是熊猫列,您需要确保它保存数据:

a=['45,48','4,56','45,7','67,5']
df=pd.DataFrame(a, columns=['A'])
df

输出

    A
0   45,48
1   4,56
2   45,7
3   67,5
v=df['A']
v.dtypes

输出

dtype('O')

然后进行转换

v=v.str.replace(',','.').astype(float)
v

输出

0    45.48
1     4.56
2    45.70
3    67.50
Name: A, dtype: float64

推荐阅读