pandas数据分析时经常需要打印输出数据,当数据量大时,输出的展示设置非常重要,好的展示可以帮助更好地理解数据!
pandas相关的显示设置函数主要有以下三个:
import pandas as pd
(1)pd.pandas.set_option('参数名', 参数值) :设置相关显示选项
(2)pd.pandas.get_option('参数名', 参数值) :获取相关显示选项
(3)pd.pandas.reset_option('参数名', 参数值) :恢复默认相关选项
参数名:
(完整参数名为:'display.参数名',可省略'display.',直接用'参数名')
- display.width:数据显示区域的总宽度,以总字符数计算。
- display.max_rows:最大显示行数,超过该值用省略号代替,为None时显示所有行。
- display.max_columns:最大显示列数,超过该值用省略号代替,为None时显示所有列。
- display.max_colwidth:单列数据宽度,以字符个数计算,超过时用省略号表示。
- display.precision:设置输出数据小数点的位数。
- display.expand_frame_repr:输出数据宽度超过设置宽度时,是否要折叠,False不折叠(通常选这个),True要折叠。
- display.large_repr:当数据维度超过max_rows和max_columns时,设置数据的显示方式,参数值truncate显示带省略号的数据(默认方式);参数值info显示数据的统计信息,而不直接显示数据(info实际就是df.info()函数)。
- display.max_info_columns:df.info()函数按列统计每列的非空数据个数,当数据很大时,计算过程非常慢,该参数设置最大列数,当数据表的列数小于该值时,才计算每列的非空值并输出,当超过该值时不进行计算。
- display.show_dimensions:当大的数据以truncate(带引号的省略方式)显示时,是否在最后显示数据的维数,True是显示(默认),False是不显示。
以上参数设置较常用,还有其他参数设置。
参考文献:
https://pandas.pydata.org/pandas-docs/stable/user_guide/options.html
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.set_option.html?highlight=pandas%20set_options
示例:
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randn(150, 150))
# pd.set_option('expand_frame_repr', False) #数据超过总宽度后,是否折叠显示
pd.set_option('display.width', 100) #数据显示总宽度
pd.set_option('max_rows', 100) #显示最多行数,超出该数以省略号表示
pd.set_option('max_columns', 100) #显示最多列数,超出该数以省略号表示
pd.set_option('max_colwidth', 16) #设置单列的宽度,用字符个数表示,单个数据长度超出该数时以省略号表示
pd.set_option('large_repr', 'truncate') #数据超过设置显示最大行列数时,带省略号显示/若是info则是统计信息显示
pd.set_option('show_dimensions', True) #当数据带省略号显示时,是否在最后显示数据的维度
print(df)
pd.set_option('max_info_columns', 100) #当列数超过这个值时,调用df.info()函数时不会统计每列的非空值。
print(df.info())
链接:https://www.jianshu.com/p/5c0aa1fa19af
通过print输出Dataframe中的数据,当Dataframe行数很多时,中间部分显示省略号.
通过查看pandas的官方文档可知,pandas.set_option() 可以设置pandas相关的参数,从而改变默认参数。 打印pandas数据时,默认是输出100行,多的话中间数据会输出省略号。
在代码中添加以下两行代码,可以改变显示宽度和行数,这样就能完整地查看数据了
pd.set_option('display.width', 1000) # 设置字符显示宽度
pd.set_option('display.max_rows', None) # 设置显示最大行
pd.set_option('display.max_columns', None) # 设置显示最大行