教你漂亮打印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 相关文章推荐
python操作CouchDB的方法
Oct 08 Python
python的pdb调试命令的命令整理及实例
Jul 12 Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 Python
Python实现PS滤镜功能之波浪特效示例
Jan 26 Python
dataframe 按条件替换某一列中的值方法
Jan 29 Python
Python实现数据结构线性链表(单链表)算法示例
May 04 Python
django项目用higcharts统计最近七天文章点击量
Aug 17 Python
30行Python代码实现高分辨率图像导航的方法
May 22 Python
Python虚拟环境库virtualenvwrapper安装及使用
Jun 17 Python
Anaconda使用IDLE的实现示例
Sep 23 Python
详解Python利用configparser对配置文件进行读写操作
Nov 03 Python
python 求两个向量的顺时针夹角操作
Mar 04 Python
pytorch 实现多个Dataloader同时训练
python 如何做一个识别率百分百的OCR
基于PyTorch实现一个简单的CNN图像分类器
May 29 #Python
python 爬取华为应用市场评论
python 开心网和豆瓣日记爬取的小爬虫
May 29 #Python
Python趣味挑战之实现简易版音乐播放器
新手必备Python开发环境搭建教程
You might like
php的header和asp中的redirect比较
2006/10/09 PHP
PHP下一个非常全面获取图象信息的函数
2008/11/20 PHP
PHP连接MySQL数据的操作要点
2015/03/20 PHP
Yii2中如何使用modal弹窗(基本使用)
2016/05/30 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
2008/03/22 Javascript
js null,undefined,字符串小结
2010/08/21 Javascript
jQuery AjaxQueue改进步骤
2011/10/06 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
JS嵌套函数调用上下文的问题解决
2014/03/26 Javascript
JavaScript italics方法入门实例(把字符串显示为斜体)
2014/10/17 Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
2017/04/14 Javascript
JS实现的计数排序与基数排序算法示例
2017/12/04 Javascript
JS实现访问DOM对象指定节点的方法示例
2018/04/04 Javascript
在vue中安装使用vux的教程详解
2018/09/16 Javascript
Vue分页器实现原理详解
2019/06/28 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
2020/03/24 Javascript
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
python中mechanize库的简单使用示例
2014/01/10 Python
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
2016/07/02 Python
Linux下为不同版本python安装第三方库
2016/08/31 Python
详解Python中类的定义与使用
2017/04/11 Python
python爬虫实战之爬取京东商城实例教程
2017/04/24 Python
对Python中的条件判断、循环以及循环的终止方法详解
2019/02/08 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
python使用sklearn实现决策树的方法示例
2019/09/12 Python
Django实现基于类的分页功能
2019/10/31 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
Big Green Smile德国网上商店:提供各种天然产品
2018/05/23 全球购物
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
自考生毕业自我鉴定
2013/10/10 职场文书
门诊手术室工作制度
2014/01/30 职场文书
微信营销策划方案
2014/02/24 职场文书
后进生评语大全
2015/01/04 职场文书