在Jupyter Notebook中對pandas數據進行分析處理的時候都能夠以表格的形式呈現,非常美觀,但是在pycharm中呈現的的結果則比較零散,找了很久,終於找到了PrettyTable庫,能夠對pycharm的輸出結果以列表的形式呈現。
prettytable相關介紹:https://quant.gf.com.cn/post/249
但是新的問題,在幾乎所有的文章中介紹中 prettytable都是對列表進行處理,但是pandas的形式是DataFrame,因此在使用prettytable庫之前需要處理一下具體代碼如下:
import prettytable as pt import numpy as np import pandas as pd a=np.random.randn(30,2) b=a.round(2) df=pd.DataFrame(b) df.columns=['data1','data2']#給兩列命名 #生成日期 dates=pd.date_range('2017-1-1',periods=len(b),freq='M') df.index=dates print(df.head(),type(df)) tb = pt.PrettyTable() #添加列數據 tb.add_column('dates',df.index) tb.add_column('data1',df['data1']) tb.add_column('data2',df['data2']) print(tb)
上面的代碼中只有兩列,可以利用上面的方法來實現,比較簡單,但是如果列數比較多,那么就會比較復雜,可以考慮對上面的代碼進行精簡:
import prettytable as pt import numpy as np import pandas as pd a=np.random.randn(30,2) b=a.round(2) df=pd.DataFrame(b) df.columns=['data1','data2'] df.index=pd.date_range('2017-1-1',periods=len(b),freq='M') #這里的pd.date_range可以使用下面的pd.period_range代替,在最終在prettytable的中日期的顯示效果上能夠只顯示日期不顯示時間 df.index=pd.period_range('2017-1-1',periods=len(b),freq='M') tb = pt.PrettyTable() print(df.index,type(df.index)) print(df.head(),type(df)) print(df.columns.values) #利用prettytable對輸出結果進行美化 tb.add_column('dates',df.index) for col in df.columns.values:#df.columns.values的意思是獲取列的名稱 tb.add_column(col, df[col]) print(tb)
