Pandas常用的索引方式有哪些

这篇文章将为大家详细讲解有关Pandas常用的索引方式有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计制作、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的积石山保安族东乡族网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

序言

结合场景详细介绍两种常用的索引方式:

第一种是基于位置(整数)的索引,案例短平快,有个粗略的了解即可,实际中偶有用到,但它的应用范围不如第二种广泛。

第二种是基于名称(标签)的索引,这是要敲黑板练的重点,因为它将是我们后面进行数据清洗和分析的重要基石。

首先,简单介绍一下练习的案例数据:

流量来源来源明细访客数支付转化率客单价
一级-A351889.98%54.3
一级-B2846711.27%99.93
一级-C137472.54%0.08
一级-D51832.47%37.15
一级-E43614.31%91.73
一级-F406311.57%65.09
一级-G212210.27%86.45
一级-H20417.06%44.07
一级-I199116.52%104.57
一级-J19815.75%75.93
一级-K195814.71%85.03
一级-L178013.15%98.87
一级-M14471.04%80.07
二级-A3904811.60%91.91
二级-B33167.09%66.28
二级-C20435.04%41.91
三级-A231409.69%83.75
三级-B1481320.14%82.97
四级-A2161.85%94.25
四级-B310.00%
四级-C170.00%
四级-D30.00%

和第一篇数据集一样,记录着不同流量来源下,各渠道来源明细所对应的访客数、支付转化率和客单价。数据集虽然简短(复杂的案例数据集在基础篇完结后会如约而至),但是有足够的代表性,下面开始我们索引的表演。

1. 基于位置(数字)的索引

先看一下索引的操作方式:

df.iloc[行索引,列索引]
第一个位置是行索引,输入我们要取哪几行位置的参数
第二个位置是列索引,输入我们要取哪几列的位置参数

我们需要根据实际情况,填入对应的行参数和列参数。

场景一(行选取)

目标:选择流量来源等于一级的所有行。

思路:手指戳屏幕数一数,一级的渠道,是从第1行到第13行,对应行索引是0-12,但Python切片默认是含首不含尾的,要想选取0-12的索引行,我们得输入0:13,列想要全部选取,则输入冒号即可。
Pandas常用的索引方式有哪些

场景二(列选取)

目标:我们想要把所有渠道的流量来源和客单价单拎出来看一看。
思路:所有流量渠道,也就是所有行,在第一个行参数的位置我们输入;再看列,流量来源是第1列,客单价是第5列,对应的列索引分别是0和4:
Pandas常用的索引方式有哪些
值得注意的是,如果我们要跨列选取,得先把位置参数构造成列表形式,这里就是[0,4],如果是连续选取,则无需构造成列表,直接输入0:5(选取索引为0的列到索引为4的列)就好。

场景三(行列交叉选取)

目标:我们想要看一看二级、三级流量来源、来源明细对应的访客和支付转化率

思路:先看行,二级三级渠道对应行索引是13:17,再次强调索引含首不含尾的原则,我们传入的行参数是13:18;列的话我们需要流量来源、来源明细、访客和转化,也就是前4列,传入参数0:4。
Pandas常用的索引方式有哪些

2. 基于名称(标签)的索引

为了建立起横向对比的体感,我们依然沿用上面三个场景。

场景一:选择一级渠道的所有行。

思路:这次我们不用一个个数位置了,要筛选流量渠道为一级的所有行,只需做一个判断,判断流量来源这一列,哪些值等于一级Pandas常用的索引方式有哪些
返回的结果由True和False(布尔型)构成,在这个例子中分别代表结果等于一级和非一级。在loc方法中,我们可以把这一列判断得到的值传入行参数位置Pandas会默认返回结果为True的行(这里是索引从0到12的行),而丢掉结果为False的行,直接上例子:Pandas常用的索引方式有哪些

场景二:我们想要把所有渠道的流量来源和客单价单拎出来看一看。

思路:所有渠道等于所有行,我们在行参数位置直接输入:,要提取流量来源和客单价列,直接输入名称到列参数位置,由于这里涉及到两列,所以得用列表包起来:
Pandas常用的索引方式有哪些

场景三:我们想要提取二级、三级流量来源、来源明细对应的访客和支付转化率。

思路:行提取用判断,列提取输入具体名称参数。

df2.loc[df2['流量来源'].isin(['二级','三级']),['流量来源','来源明细','访客数','支付转化率']]

Pandas常用的索引方式有哪些
此处插播一条isin函数的广告,这个函数能够帮助我们快速判断源数据中某一列(Series)的值是否等于列表中的值。拿案例来说,df[‘流量来源’].isin([‘二级’,‘三级’]),判断的是流量来源这一列的值,是否等于“二级”或者“三级”,如果等于(等于任意一个)就返回True,否则返回False。我们再把这个布尔型判断结果传入行参数,就能够很容易的得到流量来源等于二级或者三级的渠道。

既然loc的应用场景更加广泛,应该给他加个鸡腿,再来个接地气的场景练练手。
插入场景之前,我们先花30秒的时间捋一捋Pandas中列(Series)向求值的用法,具体操作如下:

df2['访客数'].mean()df2['访客数'].std()df2['访客数'].median()df2['访客数'].max()df2['访客数'].min()

只需要加个尾巴,均值、标准差等统计数值就出来了,了解完这个,下面正式进入场景四。

场景四:对于流量渠道数据,我们真正应该关注的是优质渠道,假如这里我们定义访客数、转化率、客单价都高于平均值渠道是优质渠道,那怎么找到这些渠道呢?

思路:优质渠道,得同时满足访客、转化、客单高于平均值这三个条件,这是解题的关键。先看看均值各是多少:
Pandas常用的索引方式有哪些
再判断各指标列是否大于均值:

df2['访客数'] > df2['访客数'].mean()df2['支付转化率']> df2['支付转化率'].mean()df2['客单价'] > df2['客单价'].mean()

Pandas常用的索引方式有哪些
要三个条件同时满足,他们之间是一个“且”的关系(同时满足),在pandas中,要表示同时满足,各条件之间要用&符号连接,条件内部最好用括号区分;如果是的关系(满足一个即可),则用|符号连接:

(df2['访客数'] > df2['访客数'].mean())&(df2['支付转化率']> df2['支付转化率'].mean())&(df2['客单价'] > df2['客单价'].mean())

Pandas常用的索引方式有哪些
这样连接之后,返回True则表示该渠道同时满足访客、转化率、客单价都高于均值的条件,接下来我们只需要把这些值传入到行参数的位置。

df2.loc[(df2['访客数'] > df2['访客数'].mean())&(df2['支付转化率']> df2['支付转化率'].mean())&(df2['客单价'] > df2['客单价'].mean()),:]

Pandas常用的索引方式有哪些
到这一步,我们直接筛选出了4条关键指标都高于均值的优质渠道。

3. 数字位置跟名称位置的混合使用

用的是pandas.ix[行,列],不过新版pandas已经不建议使用改方法了,还是建议使用要不1要不2。

关于“Pandas常用的索引方式有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


分享标题:Pandas常用的索引方式有哪些
文章来源:http://myzitong.com/article/ghpcdj.html