楼主: CDA网校
419 0

[每天一个数据分析师] Pandas数据挖掘与分析时的常用方法 [推广有奖]

管理员

大师

63%

还不是VIP/贵宾

-

威望
3
论坛币
32093 个
通用积分
3062.4015
学术水平
260 点
热心指数
268 点
信用等级
235 点
经验
195077 点
帖子
5126
精华
19
在线时间
3699 小时
注册时间
2019-9-13
最后登录
2024-5-9

初级热心勋章

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

作者:俊欣

来源:关于数据分析与可视化

今天我们来讲一下用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行,如下图所示

数据挖掘与分析时的常用方法" class="syl-page-img" style="border: none; margin-top: 20px; max-width: 715px; height: auto;">

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

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列的数据,中间的几列数据就会折叠起来,如下图所示

数据挖掘与分析时的常用方法" class="syl-page-img" style="border: none; margin-top: 20px; max-width: 715px; height: auto;">

当然我们也可以改变这个值,例如当数据集当中的数据超过了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

数据挖掘与分析时的常用方法" class="syl-page-img" style="border: none; margin-top: 20px; max-width: 715px; height: auto;">

我们发现“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对于浮点数的精度的展示也是有限制的,如下图所示

数据挖掘与分析时的常用方法" class="syl-page-img" style="border: none; margin-top: 20px; max-width: 715px; height: auto;">

默认只展示小数点后面的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

数据挖掘与分析时的常用方法" class="syl-page-img" style="border: none; margin-top: 20px; max-width: 715px; height: auto;">
个性化展示数字

有时候我们遇到例如货币、百分比、小数等数字时,可以通过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 nppd.set_option('plotting.backend', 'altair') data = pd.Series(np.random.randn(100).cumsum()) data.plot()


重置回默认的配置

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

pd.describe_option()

output

数据挖掘与分析时的常用方法" class="syl-page-img" style="border: none; margin-top: 20px; max-width: 715px; height: auto;">

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

pd.describe_option("rows")

output

数据挖掘与分析时的常用方法" class="syl-page-img" style="border: none; margin-top: 20px; max-width: 715px; height: auto;">

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

pd.reset_option('all')
      相关帖子DA内容精选
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:pandas panda 数据挖掘 Das Matplotlib

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-10 13:51