教你漂亮打印Pandas DataFrames和Series


Posted in Python onMay 29, 2021

一、前言

当我们必须处理可能有多个列和行的大型DataFrames时,能够以可读格式显示数据是很重要的。这在调试代码时非常有用。

默认情况下,当打印出DataFrame且具有相当多的列时,仅列的子集显示到标准输出。 显示的列甚至可以多行打印出来。

二、问题

假设我们有以下DataFrame:

import pandas as pd 
import numpy as np


df = pd.DataFrame(
  np.random.randint(0, 100, size=(100, 25)), 
  columns=[f'column{i}' for i in range(0, 25)]
)

print(df)

现在,如果列数超过显示选项display.max_rows的值,则输出DataFrame可能不完整,如下所示。 仅显示一部分列(缺少第4列和第5列),而其余列以多行方式打印。

教你漂亮打印Pandas DataFrames和Series

尽管输出仍可读取,但绝对不建议保留列或将其打印在多行中。

三、如何漂亮打印Pandas的DataFrames

如果您的显示器足够宽并且能够容纳更多列,则可能需要调整一些显示选项。 我将在下面使用的值可能不适用于您的设置,因此请确保对其进行相应的调整。 就个人而言,我使用超宽显示器,可以在必要时打印出相当多的列。

如何在同一行打印所有列

现在,为了显示所有的列(如果你的显示器能够适合他们),并在短短一行所有你需要做的是设置显示选项expand_frame_repr为False:

pd.set_option('expand_frame_repr', False)

教你漂亮打印Pandas DataFrames和Series

display.expand_frame_repr 默认值:True

是否跨多行打印宽数据的完整DataFrame ,可以考虑使用max_columns,但是如果宽度超过display.width,则输出将在多个“页面”中回绕。

另外,您可以更改display.max_rows的值,而不是将expand_frame_repr设置为False:

pd.set_option(‘display.max_rows', False)

如果列仍打印在多页中,那么您可能还必须调整display.width。

四、如何打印所有行

现在,如果您的DataFrame包含的行数超过一定数目,那么将仅显示一些记录(来自df的头部和尾部):

import pandas as pd 
import numpy as np


df = pd.DataFrame(
  np.random.randint(0, 5, size=(100, 4)), 
  columns=[f'column{i}' for i in range(0, 4)]
)

print(df)

# column0  column1  column2  column3
# 0         4        0        0        0
# 1         2        2        4        2
# 2         2        4        0        2
# 3         0        0        0        4
# 4         3        4        3        3
# ..      ...      ...      ...      ...
# 95        3        1        1        2
# 96        1        4        0        0
# 97        0        3        2        1
# 98        3        3        4        2
# 99        0        3        0        3
# [100 rows x 4 columns]

如果要显示更大范围(甚至全部)的行,则需要将display.max_rows设置为要输出的行数。 如果要显示所有行,请将其设置为“None”:

pd.set_option('display.max_rows', None)

五、使用上下文管理器

更好的方法是使用option_context(),它是一个上下文管理器,可用于在with语句上下文中临时设置特定选项。

import pandas as pd 
import numpy as np

df = pd.DataFrame(
  np.random.randint(0, 100, size=(100, 25)), 
  columns=[f'column{i}' for i in range(0, 25)]
)

with pd.option_context('expand_frame_repr', False, 'display.max_rows', None): 
  print(df)

六、其他有用的显示选项

您可以调整更多显示选项,并更改Pandas DataFrames的显示方式。

display.max_colwidth:这是显示列名的最大字符数。 如果某个列名溢出,则将添加一个占位符(…)。

pd.set_option('display.max_colwidth', None)

display.precision:这是将用于浮点数的精度。 它指定小数点后的位数。

display.width:这是显示字符的总数。 如果要显示更多列,则可能有时还必须调整display.width。

您可以使用describe_option()找到完整的显示列表:

pd.describe_option(‘display') .

给Jupyter用户的注意事项

如果您正在使用Jupyter Notebooks,而不是print(df),只需使用display(df)即可相应地调整宽度。

七、总结

在今天的文章中,我们讨论了Pandas的一些显示选项,使您可以根据要显示的内容以及可能使用的显示器,漂亮地打印DataFrame。

熊猫带有一个设置系统,使用户可以调整和自定义显示功能。 我们仅涵盖了可用显示选项的一小部分。

到此这篇关于教你漂亮打印Pandas DataFrames和Series的文章就介绍到这了,更多相关打印Pandas DataFrames和Series内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在Django中限制已登录用户的访问的方法
Jul 23 Python
深入讲解Python中的迭代器和生成器
Oct 26 Python
Django自定义插件实现网站登录验证码功能
Apr 19 Python
Windows下Python3.6安装第三方模块的方法
Nov 22 Python
对python当中不在本路径的py文件的引用详解
Dec 15 Python
python下载微信公众号相关文章
Feb 26 Python
Python warning警告出现的原因及忽略方法
Jan 31 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
Mar 12 Python
python 安装移动复制第三方库操作
Jul 13 Python
Python 通过正则表达式快速获取电影的下载地址
Aug 17 Python
python dir函数快速掌握用法技巧
Dec 09 Python
python 判断文件或文件夹是否存在
Mar 18 Python
pytorch 实现多个Dataloader同时训练
python 如何做一个识别率百分百的OCR
基于PyTorch实现一个简单的CNN图像分类器
May 29 #Python
python 爬取华为应用市场评论
python 开心网和豆瓣日记爬取的小爬虫
May 29 #Python
Python趣味挑战之实现简易版音乐播放器
新手必备Python开发环境搭建教程
You might like
两种php调用Java对象的方法
2006/10/09 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
2013/05/03 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
thinkphp5框架扩展redis类方法示例
2019/05/06 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
jQuery.holdReady()方法用法实例
2014/12/27 Javascript
jquery渐隐渐显的图片幻灯闪烁切换实现方法
2015/02/26 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
JS实现左右无缝轮播图代码
2016/05/01 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
2016/10/18 Javascript
Vue2 Vue-cli中使用Typescript的配置详解
2017/07/24 Javascript
vue与TypeScript集成配置最简教程(推荐)
2017/10/17 Javascript
编写React组件项目实践分析
2018/03/04 Javascript
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
2018/11/30 Javascript
js中call()和apply()改变指针问题的讲解
2019/01/17 Javascript
JavaScript常用工具函数汇总(浏览器环境)
2020/09/17 Javascript
使用python解析xml成对应的html示例分享
2014/04/02 Python
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
PyTorch的深度学习入门教程之构建神经网络
2019/06/27 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
pytorch 求网络模型参数实例
2019/12/30 Python
python计算二维矩形IOU实例
2020/01/18 Python
python模拟哔哩哔哩滑块登入验证的实现
2020/04/24 Python
Python多线程正确用法实例解析
2020/05/30 Python
HTML5 visibilityState属性详细介绍和使用实例
2014/05/03 HTML / CSS
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
Book Depository欧盟:一家领先的国际图书零售商
2019/05/21 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
访谈节目策划方案
2014/05/15 职场文书
节约用水标语
2014/06/11 职场文书
继承公证书格式
2015/01/26 职场文书
mysql创建存储过程及函数详解
2021/12/04 MySQL