我正在寻找一点帮助,我真的是Python的新手,不知道这是否会使myslef或其他内容变得更难。我正在尝试从csv文件绘制简单的折线图。香港专业教育学院尝试了许多方法,但都返回错误:ValueError:无法将字符串转换为浮点数:
这似乎是最好的代码
import csv`
import pylab as pl
import numpy as np
matplotlib.dates as mdates
with open('D:/growth_rate.csv') as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
for row in readCSV:
print (row)
a= (row)
np.shape(a)
x,y = np.loadtxt('D:/growth_rate.csv', delimiter = ',', unpack=True,
converters = {0: mdates.strpdate2num('%d/%m/%Y')})
香港专业教育学院也尝试了CSV阅读器的方法,但类似的问题
a = zip(*csv.reader(open('D:/growth_rate.csv', 'rb')))
csv.writer(open('D:/growth_rate.csv', "wb")).writerows(a)
print a
我不知道csv文件是否有问题,它最初是xls文件,带有公司标题和其他废话,所以我将其放入csv中并尝试了txt文件。或我确实错过了一些明显的事情,
任何帮助,不胜感激。
您也可以在numpy / matplotlib中执行此操作,而无需使用熊猫。请注意,这np.genfromtxt
可以很好地处理空白行(相对于空白行,np.loadtxt
它们会中断。默认情况下,这些值会用NaN
s填充,但是您可以使用filling_values
选项更改此值。
import numpy as np
import matplotlib.dates as mdates
from matplotlib import pyplot as plt
date_decode_function = lambda b: mdates.strpdate2num('%d/%m/%Y')(b.decode())
dates, growth_rates = np.genfromtxt('growth_rate.csv',
delimiter = ',',
unpack=True,
converters = {0: date_decode_function})
fig, ax = plt.subplots()
ax.plot_date(dates, growth_rates,'-',lw=2)
plt.xlabel("Date", fontsize=16)
plt.ylabel("Growth rate", fontsize=16)
plt.grid()
plt.show()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句