前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >12大Pandas配置技巧

12大Pandas配置技巧

原创
作者头像
皮大大
发布2021-12-15 20:55:42
7430
发布2021-12-15 20:55:42
举报

在Pandas的使用过程中,除了数据,我们更多的就是和表格打交道。为了更好地展示一份表格数据,必须前期有良好的设置。

本文介绍的是Pandas的常用配置技巧,主要根据options和setings来展开的。强推官网学习地址:https://pandas.pydata.org/pandas-docs/stable/user_guide/options.html

<!--MORE-->

导入

这是一种国际惯例的导入方式!

代码语言:txt
复制
import pandas as pd

忽略警告

因为版本的更新,可能Pandas的某些用法在不久将会被移除,经常会出现一些警告(不是报错),配上如下的代码即可忽略相关的警告:

代码语言:txt
复制
# 忽略警告
import warnings
warnings.filterwarnings('ignore')

float型数据精度

查看默认精度

默认是保留6位小数。通过下面的方式来打印当前的精度:

代码语言:txt
复制
pd.get_option( 'display.precision')
代码语言:txt
复制
6

修改精度

将精度设置成2位

代码语言:txt
复制
pd.set_option( 'display.precision',2)
# 写法2:pd.options.display.precision = 2

然后我们再次打印当前的精度则变成了2位:

代码语言:txt
复制
pd.get_option( 'display.precision')
代码语言:txt
复制
2

显示行

查看显示行数

默认显示的行数是60

代码语言:txt
复制
pd.get_option("display.max_rows")  # 默认是60
代码语言:txt
复制
60

默认最少的行数是10位:

代码语言:txt
复制
pd.get_option("display.min_rows")  # 最少显示行
代码语言:txt
复制
10

修改显示行数

修改最大的显示行数成999,然后再查看:

代码语言:txt
复制
pd.set_option("display.max_rows",999)  # 最多显示行数
代码语言:txt
复制
pd.get_option("display.max_rows")
代码语言:txt
复制
999

修改最少显示行数:

代码语言:txt
复制
pd.set_option("display.min_rows",20)  
代码语言:txt
复制
pd.get_option("display.min_rows")
代码语言:txt
复制
20

重置功能

使用重置reset_option方法后,设置就会变成默认的形式(数值):

代码语言:txt
复制
pd.reset_option("display.max_rows")
代码语言:txt
复制
pd.get_option("display.max_rows")  # 又恢复到60
代码语言:txt
复制
60
代码语言:txt
复制
pd.reset_option("display.min_rows")
代码语言:txt
复制
pd.get_option("display.min_rows")  # 又恢复到10
代码语言:txt
复制
10

正则功能

如果我们对多个options进行了修改设置,想同时恢复的话,使用正则表达式可以重置多条option。

在这里表示以displacy开头的设置全部重置:

代码语言:txt
复制
# ^表示以某个字符开始,在这里表示以display开始全部重置
pd.reset_option("^display")

全部重置

如果使用all,则表示对全部的设置进行重置:

代码语言:txt
复制
pd.reset_option('all')

显示列

既然能够控制显示的行数,当然也是可以控制显示的列数

查看显示列数

查看默认显示的列数是20:

代码语言:txt
复制
pd.get_option('display.max_columns')

# 另一种写法:通过属性的方式
pd.options.display.max_columns  
代码语言:txt
复制
20

改变列数

修改显示的列数成100:

代码语言:txt
复制
# 修改成100
pd.set_option('display.max_columns',100)

查看修改后的列数:

代码语言:txt
复制
# 查看修改后的值
pd.get_option('display.max_columns')
代码语言:txt
复制
100

显示所有列

如果设置成None,则表示显示全部的列:

代码语言:txt
复制
pd.set_option('display.max_columns',None)

重置

代码语言:txt
复制
pd.reset_option('display.max_columns')

修改列宽

上面是查看列的数量,下面是针对每个列的宽度进行设置。单列数据宽度,以字符个数计算,超过时用省略号来表示。

默认列宽

默认的列宽是50个字符的宽度:

代码语言:txt
复制
pd.get_option ('display.max_colwidth')
代码语言:txt
复制
50

修改列宽

修改显示的列宽成100:

代码语言:txt
复制
# 修改成100
pd.set_option ('display.max_colwidth', 100)

查看显示的列宽长度:

代码语言:txt
复制
pd.get_option ('display.max_colwidth')
代码语言:txt
复制
100

显示所有列

显示全部的列:

代码语言:txt
复制
pd.set_option ('display.max_colwidth', None)

折叠功能

当我们输出数据宽度,超过了设置的宽度时,是否要折叠。通常使用False不折叠,相反True要折叠。

代码语言:txt
复制
pd.set_option("expand_frame_repr", True)  # 折叠
代码语言:txt
复制
pd.set_option("expand_frame_repr", False)  # 不折叠

代码段修改设置

上面介绍的各种设置,如果有修改的话都是整个环境的;我们还可以只给某个代码块进行临时的设置。

跑出当前的代码块,则会失效,恢复到原来的设置。

假设这里是第一个代码块:

代码语言:txt
复制
print(pd.get_option("display.max_rows"))
print(pd.get_option("display.max_columns"))
60
20

这里是第二个代码块:

代码语言:txt
复制
# 当前代码块进行设置

with pd.option_context("display.max_rows", 20, "display.max_columns", 10):
    print(pd.get_option("display.max_rows"))
    print(pd.get_option("display.max_columns"))
20
10

这里第三个代码块:

代码语言:txt
复制
print(pd.get_option("display.max_rows"))
print(pd.get_option("display.max_columns"))
60
20

上面的例子我们可以发现:到了指定的代码块之外,设置无效

数字格式化

Pandas中有个display.float_format的方法,能够对浮点型的数字进行格式化输出,比如用千分位,百分比,固定小数位表示等。

如果其他数据类型可以转换为浮点数,也可以使用该方法。

The callable should accept a floating point number and return a string with the desired format of the number

千分位表示

当数据比较大的时候,希望通过千分位的形式来表示数据,一目了然:

代码语言:txt
复制
df = pd.DataFrame({
    "percent":[12.98, 6.13, 7.4],
    "number":[1000000.3183,2000000.4578,3000000.2991]})
df

百分比

特殊符号

除了%号,我们还可以使用其他的特殊符号来表示:

零门槛转换

门槛转换是指什么意思呢?首先这个功能的实现使用的是display.chop_threshold方法。

表示将Series或者DF中数据展示为某个数的门槛。大于这个数,直接显示;小于的话,用0显示。

更改绘图方法

默认情况下,pandas使用matplotlib作为绘图后端,我们可以进行设置修改:

代码语言:txt
复制
import matplotlib.pyplot as plt
%matplotlib inline

# 默认情况
df1 = pd.DataFrame(dict(a=[5,3,2], b=[3,4,1]))
df1.plot(kind="bar")
plt.show()

更改下绘图后端,变成强大的plotly:

代码语言:txt
复制
# 写法1
pd.options.plotting.backend = "plotly"

df = pd.DataFrame(dict(a=[5,3,2], b=[3,4,1]))
fig = df.plot()
fig.show()

# 写法2
df = pd.DataFrame(dict(a=[5,3,2], b=[3,4,1]))
fig = df.plot(backend='plotly') # 在这里指定
fig.show()

修改列头对齐方向

默认情况,属性字段(列头)是靠右对齐的,我们可以进行设置。下面看一个来自官网的例子:

打印出当前设置并重置所有选项

pd.describe_option()是打印当前的全部设置,并充值所有选项。下面是部分设置选项:

配置技巧

下面总结了常用的配置,复制即可使用:

代码语言:txt
复制
import pandas as pd  # 国际惯例

import warnings
warnings.filterwarnings('ignore')  # 忽略文中的警告

pd.set_option( 'display.precision',2)
pd.set_option("display.max_rows",999)  # 最多显示行数
pd.set_option("display.min_rows",20)   # 最少显示行数
pd.set_option('display.max_columns',None)  # 全部列
pd.set_option ('display.max_colwidth', 100)   # 修改列宽
pd.set_option("expand_frame_repr", True)  # 折叠
pd.set_option('display.float_format',  '{:,.2f}'.format)  # 千分位
pd.set_option('display.float_format', '{:.2f}%'.format)  # 百分比形式
pd.set_option('display.float_format', '{:.2f}¥'.format)  # 特殊符号
pd.options.plotting.backend = "plotly"  # 修改绘图
pd.set_option("colheader_justify","left")  # 列字段对齐方式
pd.reset_option('all')  # 重置

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导入
  • 忽略警告
  • float型数据精度
    • 查看默认精度
      • 修改精度
      • 显示行
        • 查看显示行数
          • 修改显示行数
            • 重置功能
              • 正则功能
                • 全部重置
                • 显示列
                  • 查看显示列数
                    • 改变列数
                      • 显示所有列
                        • 重置
                        • 修改列宽
                          • 默认列宽
                            • 修改列宽
                              • 显示所有列
                              • 折叠功能
                              • 代码段修改设置
                              • 数字格式化
                                • 千分位表示
                                  • 百分比
                                    • 特殊符号
                                    • 零门槛转换
                                    • 更改绘图方法
                                    • 修改列头对齐方向
                                    • 打印出当前设置并重置所有选项
                                    • 配置技巧
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档