[英]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.