今天我们来讲一下用Pandas
模块对数据集进行分析的时候,一些经常会用到的配置,通过这些配置的帮助,我们可以更加有效地来分析和挖掘出有价值的数据。
数据集的准备
这次我们需要用到的数据集是广为人所知的泰坦尼克号的乘客数据,我们先导入并且读取数据集
代码语言:javascript复制import pandas as pd
df = pd.read_csv("train.csv")
展示更多的行
Pandas
默认只展示60
行的数据,如果数据集当中的数量超过了60行,
pd.get_option('display.max_rows')
## 或者是
pd.options.display.max_rows
output
代码语言:javascript复制60
要是数据集当中的数据超过了60行,则会将中间的数据给折叠起来,展示出来前面的5行以及最后的5行,如下图所示
当然我们也可以改变最多展示出来的行数,代码如下
代码语言:javascript复制pd.set_option('display.max_rows', 200)
或者我们要是想将所有的数据都给展示出来的话,就设置成None
,当然要是我们的数据集很长很长的话,有几万行几十万行的话,这么做可能会使得notebook
崩掉
pd.set_option('display.max_rows', None)
或者是
# pd.options.display.max_rows = None
展示更多的列
同样地,pandas
默认只展示20列的数据
pd.get_option('display.max_columns')
# pd.options.display.max_columns
output
代码语言:javascript复制20
要是数据集超过了20列的数据,中间的几列数据就会折叠起来,如下图所示
当然我们也可以改变这个值,例如当数据集当中的数据超过了50列才会被折叠,代码如下
代码语言:javascript复制# 当数据集当中的数据超过了50列才会被折叠
pd.set_option('display.max_columns', 50)
# pd.options.display.max_columns = 50
或者就干脆展示出来所有的列
代码语言:javascript复制pd.set_option('display.max_columns', None)
# pd.options.display.max_columns = None
改变列的宽度
当我们想要展示数据集当中的前5列的时候
代码语言:javascript复制df.head()
output
我们发现“Name”这一列当中的第二行因为字数比较多,就用了省略号来代替,这是因为Pandas
对显示数据的量也是有限制的,
pd.get_option('display.max_colwidth')
# pd.options.display.max_colwidth
当然我们也能改变这个默认值,代码如下
代码语言:javascript复制pd.set_option('display.max_colwidth', 500)
# pd.options.display.max_colwidth = 500
或者显示出所有的内容
代码语言:javascript复制pd.set_option('display.max_colwidth', None)
# pd.options.display.max_colwidth = None
改变浮点数的精度
或许你也察觉到了Pandas
对于浮点数的精度的展示也是有限制的,如下图所示
默认只展示小数点后面的6位小数,
代码语言:javascript复制pd.get_option('display.precision')
# pd.options.display.precision
output
代码语言:javascript复制6
要是我们只是希望展示小数点后面2位小数,则可以这么来做
代码语言:javascript复制pd.set_option('display.precision', 2)
# pd.options.display.precision = 2
我们来看一下最终的效果如何
代码语言:javascript复制df.head()
output
个性化展示数字
有时候我们遇到例如货币、百分比、小数等数字时,可以通过pandas
当中的display.float_format
方法来个性化展示数字,
pd.set_option('display.float_format', '{:,.2f}'.format)
df_test
例如我们希望对数字添加百分号来展示,代码如下
代码语言:javascript复制pd.set_option('display.float_format', '{:.2f}%'.format)
df_test
例如我们希望在数字面前添加货币符号,代码如下
代码语言:javascript复制pd.set_option('display.float_format', '${:.2f}'.format)
df_test
改变图表绘制的后端
默认的Pandas
模块对图表的绘制是以matplotlib
为后端的,但是以此为后端绘制出来的图表并不是动态可交互的,我们可以改成以plotly
或者是altair
为后端来绘制图表,
import pandas as pd
import numpy as np
pd.set_option('plotting.backend', 'altair')
data = pd.Series(np.random.randn(100).cumsum())
data.plot()
小编之前写过以plotly
以及altair
为后端来绘制图表的教程,感兴趣的童鞋可以点击下面的链接查阅
- 7000字 23张图,Pandas一键生成炫酷的动态交互式图表
重置回默认的配置
除了上面小编介绍的配置之外,大家也可以自行对数据集的展示的配置进行调整,首先我们看一下总共有哪些配置可以供我们来调整
代码语言:javascript复制pd.describe_option()
output
要是我们指定想要看横轴方向上的配置,可以这么来做
代码语言:javascript复制pd.describe_option("rows")
output
依次我们可以对最大展示出来的行数、最少展示出来的行数进行调整,而要是你想将所有的配置还原成默认值,可以这么来做
代码语言:javascript复制pd.reset_option('all')