gpt4 book ai didi

python - 为什么这个字符串不会转换为浮点型?

转载 作者:行者123 更新时间:2023-12-01 00:52:06 26 4
gpt4 key购买 nike

“金额”列是一个字符串。我想将其更改为 float ,以便我可以将这些行输入到以后的计算中。

In [1] import pandas as pd

data = pd.read_csv('input.csv')

data
Out [1] 
ID Amount Cost
0 A 9,596,249.09 1000000
1 B 38,385,668.57 50000
2 C 351,740.00 100
3 D - 23
4 E 178,255.96 999

请注意,“D”的数量为“-”而不是零。

首先我清理坏数据:

In [2]
data['Amount'] = data['Amount'].replace(' - ', 0)
data
Out [2]
ID Amount Cost
0 A 9,596,249.09 1000000
1 B 38,385,668.57 50000
2 C 351,740.00 100
3 D 0 23
4 E 178,255.96 999

然后我尝试使用两种方法转换为 float 。均不成功:

In [3]
pd.Series(data['Amount']).astype(float)
Out [3]
ValueError: could not convert string to float: '9,596,249.09'

和:

In [4]
pd.to_numeric(data['Amount'])
Out [4]
ValueError: Unable to parse string "9,596,249.09" at position 0

在绝望中,我尝试循环遍历行:

In [5]
def cleandata(x):
return float(x)

data['Amount'] = data['Amount'].apply(cleandata)
Out [5]
ValueError: could not convert string to float: '9,596,249.09'

感谢您提供的任何建议。我已经尝试了几个小时了。谢谢。

最佳答案

尝试:

data = pd.read_csv('input.csv', thousands=',', decimal='.')

关于python - 为什么这个字符串不会转换为浮点型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56495779/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com