利用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)