【发布时间】:2016-11-14 22:26:01
【问题描述】:
我正在使用 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)
如果我换行:
money = int(row[1]) to money = float(row[1])
我收到此错误:ValueError:无法将字符串转换为浮点数: 这是我的回溯:第一个错误:
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:
任何帮助都会很棒!谢谢!
【问题讨论】:
-
有什么理由不使用 pandas
read_csv方法加载这个?df = pd.read_csv(filename)?这将为您的数据使用适当的dtypes,此外您还可以使用astype轻松转换:df['col'] = pd.to_numeric(df['col'], errors='coerce') -
你没有告诉你期望你的代码做什么,为什么会这样。错误很明显 -
'42152129.0'不能明确地转换为 int(因为它不是 int 的有效字符串表示形式),``(空字符串)也不能明确地转换为 float。 -
我一直在考虑使用 Pandas 并且过去几天一直在考虑,但是,我想绘制数据,但目前还不确定如何在 Pandas 中执行此操作。我只想绘制对某些国家的经济援助数据,x 轴是日期,y 是金额。
-
pandas支持绘图方法和matplotlib,例如您可以直接调用df.plot()或df.plot().barh(),参见docs -
哦,我会检查一下!这是我真正想做的,但还没有找到一个很好的教程来展示我一起使用 matplotlib 和 Pandas。 (这实际上是我想要的,我会检查文档。)
标签: python csv pandas matplotlib data-science