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

 

posted @ 2019-06-16 00:45  舒畅123  阅读(5569)  评论(0编辑  收藏  举报