大家好,我是杨哥。通过使用pandas,我们经常需要交互展示表格(dataframe)和分析表格。表格的格式尤为重要,因为很多时候如果我们直接展示表格,格式并不是很友好。其实这些痛点都可以通过pandas的选择来解决。就几行代码,只要提前配置好,设置一次,全局生效,完美!#使用方法importpandasaspdpd.set_option()pd.get_option()#使用属性,比如最大显示行数pd.option.display.max_rows东哥整理了8个常用的配置选项,供大家参考。记住这8个选项代码,下次直接贴上去,效率可以提高很多,爽。showmorerowsshowmorecolumnschangecolumnwidthsetprecisionoffloatcolumnsnumberformatdisplaychangeplottingmethodconfigureinfo()outputprintoutcurrentsettingsandresetalloptions1.showmorerowsbydefaultpandasis如果表格不超过显示屏幕的范围,如果表格中有很多行,它会截断中间的行,只显示其中的一部分。我们可以通过设置display.max_rows来控制显示的最大行数,比如我想设置显示为200行。pd.set_option('display.max_rows',200)#pd.options.display.max_rows=200如果行数超过了display.max_rows,那么display.min_rows会决定显示多少行。因为display.min_rows的默认行数是5,下面的例子只显示前5行和后5行,中间的所有行都被省略。同样,你也可以根据自己的习惯显示可显示行数,比如10,20..pd.set_option('display.min_rows',10)#pd.options.display.min_rows=10也可以重新设置直接地。#resetpd.reset_option('display.max_rows')2.显示更多的列和行可以设置,同一列也可以设置,display.max_columns控制可以显示的列数,默认值为20.pd.get_option('display.max_columns')#pd.options.display.max_columns203.更改列宽pandas对列中显示的字符数有一些限制,默认值为50个字符。因此,如果某些值字符太长,则会显示省略号。如果要全部显示,可以设置display.max_colwidth,比如设置为500pd.set_option('display.max_colwidth',500)#pd.options.display.max_colwidth=5004设置float的精度column对于float浮点型数据,pandas默认只显示小数点后6位。我们可以提前设置display.precision,让它只显示2位数字,避免后面重复操作。pd.set_option('display.precision',2)#pd.options.display.precision=2这个设置不影响底层数据,只影响浮动列的显示。5.数字格式化显示pandas中有一个选项display.float_formatoption可以用来格式化任意浮点数列。这仅适用于浮点数列,对于其他数据类型,必须将它们转换为浮点数。用逗号格式化像1200000这样的大数字看起来很不方便,所以我们用逗号分隔它们。pd.set_option('display.float_format','{:,}'.format)设置数字精度有点类似于上面的display.precision,如果我们只关心小数点后2位,可以这样设置格式:PD。set_option('display.float_format','{:,.2f}'.format)百分比格式如果我们想显示一个百分比列,我们可以这样设置。pd.set_option('display.float_format','{:.2f}%'.format)或其他货币的符号都可以,只需在花括号{}前后加上。6.更改绘图方法默认情况下,pandas使用matplotlib作为绘图后端。从0.25版本开始,pandas提供了使用不同后端的选项,比如plotly、bokeh等第三方库,但前提是你需要先安装它们。设置很简单,只要安装三方库,一行就可以。importpandasaspdimportnumpyasnppd.set_option('plotting.backend','altair')data=pd.Series(np.random.randn(100).cumsum())data.plot()7.配置info()在pandas的输出中,我们经常使用info()来快速查看DataFrame的数据。但是info方法默认对分析的最大列数有限制,如果数据集中有空值,在大数据集统计时会很慢。pandas提供了两个选项:display.max_info_columns:设置分析的最大列数,默认为100。display.max_info_rows:设置统计nulls的阈值,默认为1690785。比如分析150个特征的数据集时,我们可以将display.max_info_columns设置为覆盖所有列的值,比如设置为200:pd.set_option('display.max_info_columns',200)在分析大数据集时,df.info()由于计算速度很慢所有空值。所以我们可以简单的把display.max_info_rows设置一个小的值来避免计数,比如只在行数不超过5的时候才统计null:pd.set_option('display.max_info_rows',5)8。打印出当前设置并重置所有选项pd.describe_option()将打印出设置的描述及其当前值。pd.describe_option()还可以打印特定选项,例如行显示。#具体搜索pd.describe_option('rows')最后我们直接resetall即可。pd.reset_option('all')以上是8个常用的set_options的使用,下面总结一下,方便大家使用。pd.set_option('display.max_rows',xxx)#最大行数pd.set_option('display.min_rows',xxx)#最小显示行数pd.set_option('display.max_columns',xxx)#最大行数ofdisplaycolumnspd.set_option('display.max_colwidth',xxx)#最大列字符pd.set_option('display.precision',2)#浮点精度pd.set_option('display.float_format','{:,}'.format)#逗号分隔的数字pd.set_option('display.float_format','{:,.2f}'.format)#设置浮点精度pd.set_option('display.float_format','{:.2f}%'.format)#百分号格式pd.set_option('plotting.backend','altair')#改变后端绘图方式pd.set_option('display.max_info_columns',200)#info输出最大列数pd.set_option('display.max_info_rows',5)#infocount为null时的阈值pd.describe_option()#显示所有设置和描述pd.reset_option('all')#重置所有设置选项
