我正在使用 Python 进行一个简单的数据科学项目。但是,我收到以下错误:
ValueError:无法将字符串转换为 float :
这是我的代码:
import matplotlib.pyplot as plt
import csv
from datetime import datetime
filename = 'USAID.csv'
with open(filename) as f:
reader = csv.reader(f)
header_row = next(reader)
monies = []
for row in reader:
money = int(row[1])
monies.append(money)
print(monies)
如果我改变行:
money = int(row[1]) to money = float(row[1])
我收到此错误:ValueError:无法将字符串转换为 float : 这是我的回溯:第一个错误:
Traceback (most recent call last):
File "funding.py", line 60, in <module>
money = int(row[1])
ValueError: invalid literal for int() with base 10: '42152129.0'
第二个错误:
Traceback (most recent call last):
File "funding.py", line 60, in <module>
money = float(row[1])
ValueError: could not convert string to float:
任何帮助都会很棒!谢谢!
最佳答案
第一个失败是因为你传递了一个包含.
的字符串给int()
;您不能将其转换为整数,因为有小数部分。
第二次失败是由于不同 row[1]
字符串值;一个是空的。
你可以测试一下:
if row[1]:
money = float(row[1])
由于您正在处理数据科学项目,您可能需要考虑使用 pandas
project使用 DataFrame.read_csv()
加载您的 CSV .
关于Python数据错误: ValueError: invalid literal for int() with base 10: '42152129.0' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38332932/