pandas 讀csv文件 TypeError: Empty 'DataFrame': no numeric data to plot


簡單的代碼,利用pandas模塊讀csv數據文件,這里有兩種方式,一種是被新版本pandas遺棄的Series.from_csv;另一種就是pandas.read_csv

先說一下問題這個問題就是在讀csv文件時,默認的數據是object類型,因而沒有字符型數據可被plot,此時僅需要轉換一下類型即可,如下:

from pandas import Series
import matplotlib.pyplot as plt
data = Series.from_csv('daily.csv',header=0)
#print(data.head())
data.astype(float)
data.plot()
plt.show()

完美解決這個問題,畫出了下圖:

這正是想要的結果,那么另一種就是pandas.read_csv,就沒有那么幸運了,你會發現csv里面存的這種數據:

1981/1/1,20.7
1981/1/2,17.9
1981/1/3,18.8
1981/1/4,14.6
1981/1/5,15.8
1981/1/6,15.8
1981/1/7,15.8
1981/1/8,17.4
1981/1/9,21.8
1981/1/10,20
1981/1/11,16.2
1981/1/12,13.3
1981/1/13,16.7
1981/1/14,21.5

是不能顯示為x軸label的,於是我就把第一列改成了1981....這樣的數字,解決問題。這時候當然就不推薦使用第二種方法了,這么麻煩還用什么pandas,直接plt畫了。

最后,就是一定要注意數據是否有異常,有些異常數據是文本上的異常,而有些可能是語義上的異常,這都需要我們去挖掘,去除異常數據。這往往是很重要的,當然畫圖往往又是比較直觀的方式之一。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM