Tushare返回的是pandas的DataFrame格式,但是執行以下代碼時報錯:TypeError: Empty 'DataFrame': no numeric data to plot
import tushare as ts df_all = ts.realtime_boxoffice() df_box_office = df['BoxOffice'] df_box_office.index = df['Irank'] df_box_office.plot(kind='bar')
反復輸出df['BoxOffice']確認是有值的,想不通為什么會報“Empty”,百度也沒什么結果。
以為TuSahre和pandas結合時有bug准備放棄的時候看到了報錯中有“numeric”,莫非是說df['BoxOffice']是字符串類型不是數值類型所以導致報錯?
在pandas官方文檔看到了“astype()”的用法,代碼改成如下成功繪圖(另外使用“pd.to_numeric()
”也可以,不過從tushare又得繞回pandas一趟感覺代碼看起來沒那么順暢):
import tushare as ts df_all = ts.realtime_boxoffice() df_box_office = df['BoxOffice'].astype(float) df_box_office.index = df['Irank'] df_box_office.plot(kind='bar')