Python数据错误:ValueError:基为10的int()的文本无效:“42152129.0”

2024-10-06 07:12:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python进行一个简单的数据科学项目。但是,我得到一个错误,如下所示:

ValueError:无法将字符串转换为浮点:

下面是我的代码:

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)

如果我改线:

^{pr2}$

我得到以下错误: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:
任何帮助都太好了!谢谢您!在


Tags: csv字符串inimportdatetimeas错误float
2条回答

第一个失败是因为您将一个包含.的字符串传递给了int();由于存在小数部分,因此无法将其转换为整数。在

第二个失败是由于一个不同的row[1]字符串值;该值为空。在

你可以测试一下:

if row[1]:
   money = float(row[1])

由于您正在处理一个数据科学项目,您可能需要考虑使用^{} project来加载CSV,而不是使用^{}。在

row[1]中的一些条目是空的,因此您可能需要在尝试cast之前检查这些条目。如果条目为空,则传递一个默认值,比如0。在

那么您应该考虑使用^{}来进行与金钱相关的计算。在

相关问题 更多 >