教你漂亮打印Pandas DataFrames和Series
作者:deephub 发布时间:2022-11-10 19:08:56
一、前言
当我们必须处理可能有多个列和行的大型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
如果您的显示器足够宽并且能够容纳更多列,则可能需要调整一些显示选项。 我将在下面使用的值可能不适用于您的设置,因此请确保对其进行相应的调整。 就个人而言,我使用超宽显示器,可以在必要时打印出相当多的列。
如何在同一行打印所有列
现在,为了显示所有的列(如果你的显示器能够适合他们),并在短短一行所有你需要做的是设置显示选项expand_frame_repr为False:
pd.set_option('expand_frame_repr', False)
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。
熊猫带有一个设置系统,使用户可以调整和自定义显示功能。 我们仅涵盖了可用显示选项的一小部分。
来源:https://blog.csdn.net/deephub/article/details/117250536


猜你喜欢
- 在python中,有很多用于生成基于JS的百度开源的数据可视化图表 Echarts 的类库。设置的图样都非常漂亮,小编之前研究过很多图示,用
- 简单说操作的步骤:1.连接数据库2.将SQL语句发送到数据库3.执行SQL语句这里举个例子:在一个数据库中有个students表,表中有学号
- Python获取电脑截图有多种方式,具体如下:PIL中的ImageGrab模块windows APIPyQtpyautoguiPIL中的Im
- 实例代码:if __name__ == '__main__': # 时间戳 &nbs
- 相信有很多人有用程序向Excel导数据的需求, 且做过. 一般导出一些文本数据是很方便的, 可选方法很多, 比如拼接文本字符串存.cvs格式
- Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit是Java语言的标准单元
- TensorFlow是Google公司2015年11月开源的第二代深度学习框架,是第一代框架DistBelief的改进版本. TensorF
- 本文实例分析了GO语言异常处理机制panic和recover。分享给大家供大家参考。具体如下:Golang 有2个内置的函数 panic()
- 这一款是用原生javascript实现的分页插件pagenav,页码显示jquery插件,只需要存在#pageNav,则会在其中显示页码,调
- 一般情况下,运行tensorflow时,默认会占用可以看见的所有GPU,那么就会导致其它用户或程序无GPU可用,那么就需要限制程序对GPU的
- Q:Dreamweaver(简称DW)中如何输入空格?A:按下“Ctrl+Shift+空格键”或者在中
- 在TensorFlow中,tf.train.exponential_decay函数实现了指数衰减学习率,通过这个函数,可以先使用较大的学习率
- CSS文件的链接方式·附加链接:外部CSS文件·导入CSS:常用应用多个CSS文件时,将多个CSS导入一个CSS文件中CSS规则定义有三种:
- TensorFlow 2.0测试版在今年春季发布,新版本比1.x版本在易用性上有了很大的提升。但是由于2.0发布还没有多久,现在大部分论文的
- 运行下面两个命令,即可把 Vim(含插件)配置成 Python IDE。目前支持 MAC 和 Ubuntu。curl -O https://
- 使用python可以对windows系统的音量进行读取或者设置。平台:visual studio code语言:python需要的pytho
- 问题查看 tensorflow api manual 时,看到关于 variable.read_value() 的注解如图:那么在 tens
- 数据库的表Info,表部分结构:Info_Id  
- 在这个情人节前夕,我把现任对象回收掉了,这段感情积攒了太多的失望,也给了我太多的伤害,所以我看到这个活动的第一反应是拒绝的。然而人生嘛,最重
- 迭代器模式迭代器模式(Iterator Pattern)是一种常用的设计模式,用于遍历集合中的元素,不暴露集合的内部结构。迭代器模式将集合和