利用prettytable對pycharm中pandas的輸出結果進行美化


在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)

 


免責聲明!

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



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