社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

【Python】Pandas数据挖掘与分析时的常用方法

机器学习初学者 • 3 年前 • 245 次点击  
今天我们来讲一下用Pandas模块对数据集进行分析的时候,一些经常会用到的配置,通过这些配置的帮助,我们可以更加有效地来分析和挖掘出有价值的数据。

数据集的准备

这次我们需要用到的数据集是广为人所知的泰坦尼克号的乘客数据,我们先导入并且读取数据集
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

60
要是数据集当中的数据超过了60行,则会将中间的数据给折叠起来,展示出来前面的5行以及最后的5行,如下图所示

当然我们也可以改变最多展示出来的行数,代码如下

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

20
要是数据集超过了20列的数据,中间的几列数据就会折叠起来,如下图所示

当然我们也可以改变这个值,例如当数据集当中的数据超过了50列才会被折叠,代码如下
# 当数据集当中的数据超过了50列才会被折叠
pd.set_option('display.max_columns', 50)
# pd.options.display.max_columns = 50

或者就干脆展示出来所有的列

pd.set_option('display.max_columns', None)
# pd.options.display.max_columns = None

改变列的宽度

当我们想要展示数据集当中的前5列的时候

df.head()

output

我们发现“Name”这一列当中的第二行因为字数比较多,就用了省略号来代替,这是因为Pandas对显示数据的量也是有限制的,
pd.get_option('display.max_colwidth')
# pd.options.display.max_colwidth

当然我们也能改变这个默认值,代码如下

pd.set_option('display.max_colwidth', 500)
# pd.options.display.max_colwidth = 500

或者显示出所有的内容

pd.set_option('display.max_colwidth', None)
# pd.options.display.max_colwidth = None

改变浮点数的精度

或许你也察觉到了Pandas对于浮点数的精度的展示也是有限制的,如下图所示

默认只展示小数点后面的6位小数,

pd.get_option('display.precision')
# pd.options.display.precision

output

6

要是我们只是希望展示小数点后面2位小数,则可以这么来做




    
pd.set_option('display.precision', 2)
# pd.options.display.precision = 2

我们来看一下最终的效果如何

df.head()

output

个性化展示数字

有时候我们遇到例如货币、百分比、小数等数字时,可以通过pandas当中的display.float_format方法来个性化展示数字,

pd.set_option('display.float_format',  '{:,.2f}'.format)
df_test

例如我们希望对数字添加百分号来展示,代码如下

pd.set_option('display.float_format''{:.2f}%'.format)
df_test

例如我们希望在数字面前添加货币符号,代码如下

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为后端来绘制图表的教程,感兴趣的童鞋可以点击下面的链接查阅

重置回默认的配置

除了上面小编介绍的配置之外,大家也可以自行对数据集的展示的配置进行调整,首先我们看一下总共有哪些配置可以供我们来调整

pd.describe_option()

output

要是我们指定想要看横轴方向上的配置,可以这么来做

pd.describe_option("rows")

output

依次我们可以对最大展示出来的行数、最少展示出来的行数进行调整,而要是你想将所有的配置还原成默认值,可以这么来做

pd.reset_option('all')




    
往期 精彩回顾




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/128664
 
245 次点击