【Python】pd.set_option()的效果与解析
文章目录
- 【Python】pd.set_option()的效果与解析
-
- 1. 介绍
- 2. API
- 3. 举例-1
-
- 3.1 显示所有行
- 3.2 显示所有列
- 3.3 显示列中单独元素的最大长度
- 4. 举例-2
-
- 4.1 换行显示、每行最大显示宽度
- 5. 参考
1. 介绍
pd.set_option()这个函数主要用于设置DataFrame的显示输出。
- 在读取到Excel文件或csv文件后,往往会出现数据显示不全(如图)等问题,有时候会影响我们对数据的判断。
使用这个函数后,能够帮助我们更好的显示数据,帮助我们更快的认识数据,能够节省不少时间。
2. API
import pandas as pd
import warnings
import numpy as np
# pandas设置显示宽度
pd.set_option('display.width', 100)
pd.set_option('precision', 1) # 设置显示数值的精度
# 显示所有列
pd.set_option('display.max_columns', None)
pd.set_option('display.max_columns', 5) # 最多显示5列
# 显示所有行
pd.set_option('display.max_rows', None)
pd.set_option('display.max_rows', 10) # 最多显示10行
# 显示小数位数
pd.set_option('display.float_format',lambda x: '%.2f'%x) # 两位
#显示宽度
pd.set_option('display.width', 100)
warnings.filterwarnings('ignore') # 关闭运行时的警告
# 打印 numpy 时设置显示宽度,并且不用科学计数法显示
np.set_printoptions(linewidth=100, suppress=True)
3. 举例-1
创建数据源的代码如下:
import pandas as pd
df = pd.DataFrame({ 'a':[[1]*20] + [i for i in range(2,101)],
'b':[2]*100,
'c':[3]*100,
'd':[4]*100,
'e':[5]*100,
'f':[6]*100,
'g':[7]*100,
'h':[8]*100,
'i':[9]*100,
'j':[10]*100,
'k':[11]*100,
'l':[12]*100,
'm':[13]*100,
'n':[14]*100,
'o':[15]*100,
'p':[16]*100,
'r':[17]*100,
's':[18]*100,
't':[19]*100,
'u':[20]*100,
'v':[21]*100,
'w':[22]*100,
'x':[23]*100,
'y':[24]*100,
'z':[25]*100})
print(df)
3.1 显示所有行
pd.set_option('display.max_rows', None)
print(df)
3.2 显示所有列
pd.set_option('display.max_columns', None)
print(df)
3.3 显示列中单独元素的最大长度
pd.set_option('max_colwidth', None)
print(df)
4. 举例-2
创建数据源的代码如下:
import pandas as pd
df = pd.DataFrame(np.random.rand(3, 30), columns=list(range(30)))
print(df)
4.1 换行显示、每行最大显示宽度
这个操作,需要几行代码配合操作。其中:
- pd.set_option(‘expand_frame_repr’,True):True表示列可以换行显示。设置成False的时候不允许换行显示;
- pd.set_option(‘display.max_columns’, None):显示所有列;
- pd.set_option(‘display.width’, 80):横向最多显示多少(80)个字符;
pd.set_option('expand_frame_repr', True)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', 80)
df = pd.DataFrame(np.random.rand(3, 30), columns=list(range(30)))
print(df)
注意,上述代码,将这个print()函数去掉,如果使用 jupyter notebook 直接输入df
回车进行输出,你会发现:
- 换行没有产生作用。
5. 参考
【1】https://blog.csdn.net/weixin_52860733/article/details/127817923
【2】https://blog.csdn.net/weixin_41261833/article/details/119222439