[英]How to filter csv with matplotlib using dates on the x-axis and rainfall on the y-axis?
我有一个csv文件,其中所有两列都显示为“日期”,另一列的降雨量为英寸(称为“降雨”)。 我不确定该怎么做,到目前为止,我的方法一直没有奏效。 在进入“日期”和“降雨”列之前,我还需要跳过前5行。
这是我到目前为止的代码:
import matplotlib.pyplot as plt
import csv
x = []
y = []
with open('1541553208_et.csv','r') as csvfile:
plots = csv.reader(csvfile, delimiter=',')
for row in plots:
for i in row:
x.append(row[0])
y.append(row[1])
plt.plot(x,y, label='Loaded from file!')
plt.xlabel('Dates')
plt.ylabel('Evaporation (inches)')
plt.title('Eden_7')
plt.legend()
plt.show()
当我运行代码时,得到以下错误结果:
我想拥有它,以便每个月的降雨数据都可以汇总为一个
我试图获得与顶部相同的效果。 怎么办呢?
谢谢
使用pandas
库而不是csv
库可能会更简单。
例如,pandas允许您将csv文件直接存储到称为dataframe的数据结构中。 这将使您可以对日期或降雨量进行分组并绘制数据。
import pandas as pd
# rain will be an dataframe instance
rain = pd.read_csv(csvfile)
rain = rain.groupby(rain['rainfall'])
rain.plot(kind='bar')
plt.show()
玩弄它,熊猫非常强大。
您可以在此处找到pandas
文档: https : //pandas.pydata.org/pandas-docs/stable/
尽管这可能不是立即解决方案,但从长远来看可能会有所帮助。
如前所述,使用pandas库将更加容易。 在您的csv库之后,您可以尝试运行此程序吗,
import matplotlib.pyplot as plt
import csv
x = []
y = []
f = open('1541553208_et.csv')
csv_f = csv.reader(f,delimiter=',')
for row in csv_f:
x.append(row[0])
for row in csv_f:
y.append(row[1])
plt.plot(x,y, label='Loaded from file!')
plt.xlabel('Dates')
plt.ylabel('Evaporation (inches)')
plt.title('Eden_7')
plt.legend()
plt.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.