趣文网 > 作文大全

一篇文章带你查看并处理Pandas数据

2020-11-23 14:45:01
相关推荐

今天我们将一下如何查看Pandas中的各类数据以及对Pandas进行处理的一些方法,通过这些方法我们可以更快的掌握Pandas对数据进行处理:

描述与统计函数应用修改列/行索引名称类型的操作表合并的方式一、描述与统计

有时会我们在获取到数据之后,想要查看一下数据的简单统计指标(比如最大值,最小值,平均值,中位数等等),如想要查看年龄的最大值,就可以直接对年龄这一列调用max方法就可以了。

1、查看最大值

查看众英雄中年龄最大的是多少岁,三种方式都可以查看

第一种是使用np.max()对info表中的年龄列进行操作

第二种是使用np.max()对info表下的年龄进行操作

第三种是info表下的年龄进行max()查找

2、查看均值

查看众英雄年龄的均值

类似的可以通过调用min、mean、quantile、sum 方法可以实现最小值、平均值、中位数以及求和。可以看到,对一个Series调用这几个方法之后,返回的都只是一个聚合结果。

3、按轴求和

下面给大家介绍一个有意思的方法:cumsum(),看这个方法的名字就能看出来它跟sum方法有点关系,应该是用来求和之类的,事实上的确如此,cumsum也是用来求和的,不过他是用来累加求和的,也就是通过它得到的结果与原始的Series或DataFrame的大小相同。

通过结果可以看到,cumsum最后的结果就是将上一次求和的结果与原始当前值求和作为当前值。

当然如果只是这种功能的话,也就没有那么有意思了,这个方法有意思的是可以对字符串类型的对象进行操作。

4、查看表格信息

虽然说常见的各种统计值都有对应的方法,如果我想要得到多个指标的话,就需要调用多次方法,是不是显得有点麻烦呢?

Pandas 设计者自然也考虑到了这个问题,想要一次性获取多个统计指标,只需调用 describe 方法即可。

可以看到,直接调用describe方法后,会显示出数字类型的一些统计指标比如:总数,平均数,标准差,最小值,最大值,四分位数等

如果想要查看非数字类型的列的统计指标的话,可以设置include=[object]来获得数据。

6、统计某个值出现的次数:value_counts

查看英雄们的城市和性别出现的次数

查看英雄的年龄分布

7、查看最小值或最大值对应的索引

如果想要查看某列最大值或最小值对应的的索引可以使用idxmax或idxmin方法来完成。

如果索引不是数据的话将会返回该行的行数。

查看哪位英雄的年龄最小

查看哪位英雄的年龄最大

8、离散化

有时候我们在处理数据的时候会碰到一些需求,比如想要将年龄进行离散化,也就是将年龄分成几个区间,这里我们想要将年龄分成三个区间段,就可以使用pandas的cut方法来完成。

通过这个结果可以看到,cut自动生成了等距的离散区间,如果自己想定义也是没有问题的。

这里我们将区间定义为3个区间,1-30之间属于青少年英雄,30-60之间的属于中年英雄,60-5000就属于不正常的的地球英雄了。有时候离散化之后,想要给每个区间起一个名字,那么我们可以指定labels参数

给英雄们添加一列中青年属性使用loc[]给表添加列

除了可以使用cut进行离散化之外,qcut也可以实现离散化。Cut是根据每个值的大小来进行离散化,qcut是根据每个值出现的次数进行离散化的。

9、排序功能

在进行数据分析时,少不了的就是进行数据排序。Pandas支持两种排序方式:按轴(索引或列)排序和按实际值排序。

9.1、按索引排序

Sort_index()方法默认是按照索引进行正序排列

下面这个是英文索引下的排序

还可以通过sort_values(by=’’)进行排序,by的意思是通过什么区排序,直接填写也可以。按性别排序:

按年龄排序:

如果想要进行倒序排列,可以设置参数axis=1或则ascending=False

9.2、按值排序

如果想要实现按照实际值来排序,例如想要按照年龄排序。

使用sort_values方法,参数设置by=age即可

有时候我们可能需要按照多个值来排序,例如:按照年龄和城市来一起排序,可以设置参数 by 为一个 list 即可,需要注意的是:list 中每个元素的顺序会影响排序优先级的,先分组在排序,最后一个为排序标准。

有时候数据量太大的时候,我们可能只需要看前几行或者后几行的数据,那么这个时候我们就可以用head()和tail()方法查看,head()方法默认只打印前5行内容,括号内可以填写想要的行数,tail()方法同理,只不过tail()方法是查看后五行的数据。

一般在排序后,我们可能需要获取最大的n个值或最小值的n个值,我们可以使用 nlargest 和 nsmallest 方法来完成,这比先进行排序,再使用 head(n)方法快得多。

二、函数应用

1.根据现有列生成新的列

生成一列元素为英雄年龄对数的

生成一列身高列

生成一列年龄加一的列

经过了复联4后,英雄们通过各种战斗现在都统一长高了10厘米,现在再表格中添加一列英雄们的新身高

现在给英雄表中添加一列性别代码列,1代表女士,0代表男式

2、常用函数

虽说 Pandas 为我们提供了非常丰富的函数,有时候我们可能需要自己定制一些函数,并将它应用到 DataFrame 或 Series。常用到的函数有map、apply、applymap。

Map是是 Series 中特有的方法,通过它可以对 Series 中的每个元素实现转换。如果想通过年龄判断用户是否属于中年人(50岁以上为中年),通过 map 可以轻松搞定它。

又比如我们可以通过城市来判断地球还是外星,我们可以这么操作。

Apply方法: apply 方法既支持 Series,也支持 DataFrame,在对 Series 操作时会作用到每个值上,在对 DataFrame 操作时会作用到所有行或所有列(通过 axis参数控制)。

对于series来说,apply方法和map方法差别不大

但是对于DataFrame来说,apply方法的作用对象是一行或一列数据

Applymap: applymap方法针对于DataFrame,它作用于DataFrame中的每个元素,它对DataFrame的效果类似于apply对 Series 的效果。

三、修改列/索引名称

在使用 DataFrame 的过程中,经常会遇到修改列名,索引名等情况。使用 rename 轻松可以实现。修改列名只需要设置参数 columns 即可。

将钢铁侠和索尔的身高改为170

生成一列字符串格式的身高列

更改索引列名称

修改列标签,将年龄改为age,城市改为city,性别改为sex

类似的修改索引名只需要修改参数index就可以了

四、类型操作

1、get_dtype_counts()

如果想要获取每种类型的列数的话,可以使用 get_dtype_counts 方法

2、 astype()

如果想要转换数据类型的话,可以通过astype来完成

2.1、生成一列年龄的对数列,并且列元素元素为整数列

首先使用np.log生成一列对数列

使用round()函数将对数列四舍五入

使用astype()将对数列转为整数列

2.2将年龄列改为浮点型

3、其他方法

有时候会涉及到将 object 类型转为其他类型,常见的有转为数字、日期、时间差,Pandas 中分别对应 to_numeric、to_datetime、to_timedelta 方法。

五、表合并的方式

1、append()方式

导入两个表

查看两个表的内容

使用append()方法将2表导入到1表中

2、concat()

2.1、纵向合并(axis=0(默认为0))

2.2、横向合并(axis=1)

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

30年后的我作文 安昌古镇作文 作文我的好朋友500字 北京作文培训 抓周作文 龟兔赛跑英语作文 介绍自己的作文400字 收拾房间作文 我的同学作文800字 关于背后的作文 我的父亲作文800字 迈出这一步作文 写人作文550字 机智的我作文 写景的作文150字 关于油菜花的作文 以暖为题的作文 描写家乡风景的作文 滑冰作文600字 篆刻作文 作文成功之路 环境与健康作文 美在路上作文 语文考试万能作文 写景的作文五百字 假期游记作文 作文小白兔100字 班级大扫除作文 默默无闻的人作文 爱我国防作文