今天我们来继续讲解Python中的Pandas库的基本用法

那么我们如何使用pandas对数据进行排序操作呢?

food.sort_values("Sodium_(mg)",inplace= True)
print(food["Sodium_(mg)"])
food.sort_values("Sodium_(mg)",inplace=True,ascending= False)
print(food["Sodium_(mg)"])

我们对food,进行sort_values方法,会自动帮我们排序,第一个参数"Sodium_(mg)"是我们数据中的列名

意思是说,你要对哪一列数据进行排序,inplace 参数的意思是,你需要生成一个新的数据,还是在原来的基础上进行,可以通过该参数指定

而sort_values排序的时候,就默认从小到大进行排序。

那么我们想做一个从大到小的排序如何做呢?

ascending这个参数,是指定一个排序升降序。在这里指定,默认该参数为True,也就是从小到大

那么我们在上面的代码中可以看到,ascending参数设置为Flase以后,即是从大到小

下面我们讲个点单的例子,泰坦尼克号小案例

import pandas as pd
import numpy as np
titanic_survival = pd.read_csv("titanic_train.csv")
titanic_survival.head()

我现在有一下一些数据,每个值都代表不同的含义,实际是一个船人员信息表,有价格,有年龄,有名字,有座位编号,等等一些数据

下面我们将年龄这一列进行数据处理,看看能得到什么结果,我们先查看了一下,前十个人的年龄如下

发现在5号人,的年龄为NAN,也就是说,这个数据为空,或者数据丢失。我们来对这个缺失值进处理

我们通过isnull方法,对数据进行判断,判断值是否为空。可以看到为True的说明数据丢失了

然后我们将这个为空的数据作为索引,可以找到全部数据中,数据丢失的值

那我们现在统计一下,有多少个数据丢失了,可以用len方法。统计数据为空的值,为177就可以得到177个数据为空的值

我们得到了缺失值后,要对缺失值进行处理

那么我先对数据没有做缺失值处理的情况下,进行一个求平均值的操作

我们可以看到,算出来的值是nan,说明有问题!所以我们不能把带有缺失值得也计算在里面

接下来我们对数据进行处理

一个基本的想法是这样的,就是说,当前数据中,有值的,我们就拿出来进行平均计算,没有值的,就不取出来进行运算

通过这样的计算,我们可以得到,平均年龄为29.6岁

这种方法可能有些麻烦,那么Pandas中有没有什么好的方法可以直接帮我们处理呢? 答案是有的

我们用这样一个简单的方法,一步就可以帮我们取出年龄的平均值。

那我们继续说些难一点的。我们在数据中,分了船舱有1, 2 ,3个等级,我们想计算一下,每个等级下的平均价格是多少

如何计算呢?

这段代码的意思是,我先用for循环,在数据中找到,哪些人是一等舱的人,哪些人是二等舱的人,哪些人是三等舱的人

我们先讲这些人的数据拿到手,拿到之后,我们进行列的定位,定位到价格这列,然后进行平均值,这样就可以得到一个平均价格

分别为以上三个,但是这种做法很麻烦,那么pandas中有没有一个更简单的方法帮我们处理数据呢?看下面的代码

我们有个需求,想算一下,3个舱位每个舱位的平均获救人数的值

可以看到我们在pivot_table中,有三个参数,第一个参数为index,就是说我们要对哪列数据进行统计

values则是说,你要在统计参数一的基础上和哪个数据有关系,作为统计。

第三个参数是aggfunc,就是说你要统计前面两个参数的什么值,我们这边统计平均值。既可以获得以上平均数据

那么我们在计算一下,每个舱位的平均年龄是多少

我们可以直接按照这种方式进行计算,既可以得到每个舱的平均年龄,这里可以看到我们没有添加第三个参数因为如果不加参数3,那么系统会默认帮我们取平均值

那我们又有了新的需求。我们现在想看看。一个量之间,与其他量的关系

我们将index设置为登船地点,那么values是船票的价格,和获救与否,最后一个参数是计算总值。

这里我们想得到的数据就是,分别在C、Q、S这三个码头登船的人的获救总数

这个数据我们可以看到,C码头卖出了1万多块的票价,获救人数是93人。以此类推

那么我们先继续看

因为数据中有些缺失值,那么我们想把这些缺失值都丢掉应该怎么做呢?

dropna的意思就是说,丢弃当前的缺失值。我们 想去掉Age Sex中有缺失值的数据,需要将这两列数据dropna方法中即可

我们继续

那么我想对数据,定位到具体的某个值,我们怎么办呢?

我们可以看到,我们想找第83个样本的年龄,那么我们只需要在参数中添加样本编号,以及需要取到的数据对应的列名。

今天就先讲到这里,感谢大家的阅读。谢谢!!

更多好文章:https://www.yuanrenxue.com/

Python Pandas库的学习(三)的更多相关文章

  1. Python Pandas库的学习(一)

    今天我们来学习一下Pandas库,前面我们讲了Numpy库的学习 接下来我们学习一下比较重要的库Pandas库,这个库比Numpy库还重要 Pandas库是在Numpy库上进行了封装,相当于高级Num ...

  2. Python Pandas库的学习(二)

    今天我们继续讲下Python中一款数据分析很好的库.Pandas的学习 接着上回讲到的,如果有人听不懂,麻烦去翻阅一下我前面讲到的Pandas学习(一) 如果我们在数据中,想去3,4,5这几行数据,那 ...

  3. python pandas库——pivot使用心得

    python pandas库——pivot使用心得 2017年12月14日 17:07:06 阅读数:364 最近在做基于python的数据分析工作,引用第三方数据分析库——pandas(versio ...

  4. Python pandas库159个常用方法使用说明

    Pandas库专为数据分析而设计,它是使Python成为强大而高效的数据分析环境的重要因素. 一.Pandas数据结构 1.import pandas as pd import numpy as np ...

  5. Python Pandas库 初步使用

    用pandas+numpy读取UCI iris数据集中鸢尾花的萼片.花瓣长度数据,进行数据清理,去重,排序,并求出和.累积和.均值.标准差.方差.最大值.最小值

  6. Python——Pandas库入门

    一.Pandas库介绍 Pandas是Python第三方库,提供高性能易用数据类型和分析工具 import pandas as pd Pandas基于NumPy实现,常与NumPy和Matplotli ...

  7. 这十个Python常用库,学习Python的你必须要知道!

    想知道Python取得如此巨大成功的原因吗?只要看看Python提供的大量库就知道了 包括原生库和第三方库.不过,有这么多Python库,有些库得不到应有的关注也就不足为奇了.此外,只在一个领域里的工 ...

  8. 这十个Python常用库?学习Python的你必须要知道!

    想知道Python取得如此巨大成功的原因吗?只要看看Python提供的大量库就知道了 ,包括原生库和第三方库.不过,有这么多Python库,有些库得不到应有的关注也就不足为奇了.此外,只在一个领域里的 ...

  9. python 标准库基础学习之开发工具部分1学习

    #2个标准库模块放一起学习,这样减少占用地方和空间#标准库之compileall字节编译源文件import compileall,re,sys#作用是查找到python文件,并把它们编译成字节码表示, ...

随机推荐

  1. VMware 12安装Mac OS X 10.11&解决上网的问题

    近日想在Win10上安装Mac OS 玩玩,于是上网搜了相关资源,查看了相关经验分享,开始着手安装.系统很快成功安装,但最大问题是虚拟机中的Mac OS无法上网.费了很长时间,最终看到Ping通结果, ...

  2. 全选Js

    <th><input type="checkbox" value="" id="checkedAll" onclick=& ...

  3. STL之map基础知识

    Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候 ...

  4. 水题 Codeforces Beta Round #70 (Div. 2) A. Haiku

    题目传送门 /* 水题:三个字符串判断每个是否有相应的元音字母,YES/NO 下午网速巨慢:( */ #include <cstdio> #include <cstring> ...

  5. ubu下编译安装php7

    第一步: 安装依赖库zlib.libpng.freetype.jpegsrc.libxml2.libgd.freetds.mhash.libmcrypt.mcrypt(依赖于mhash和libmcry ...

  6. Java多线程——进程和线程

    Java多线程——进程和线程 摘要:本文主要解释在Java这门编程语言中,什么是进程,什么是线程,以及二者之间的关系. 部分内容来自以下博客: https://www.cnblogs.com/dolp ...

  7. hihocoder offer收割编程练习赛11 D 排队接水

    思路: 莫队算法+树状数组. 莫队算法的基本思想是对大量要查询的区间进行离线处理,按照一定的顺序计算,来降低复杂度.概括来说,我们在知道了[l, r]的解,并且可以通过一个较低的复杂度推出[l - 1 ...

  8. 全志R58平台调通s5k5eya(RAW+MIPI)

    全志R58平台调通s5k5eya(RAW+MIPI) 2017/5/31 10:30 版本:V1.1 1.前期使用的是s5k5eyx的ISP的固件/tuning 文件 Y:\s5k5eya_r58_d ...

  9. 461在全志r16平台tinav3.0系统下使用地磁计QMC5883L

    461在全志r16平台tinav3.0系统下使用地磁计QMC5883L 2018/9/7 14:08 版本:V1.0 开发板:SC3817R SDK:tina v3.0 (基本确认全志tina v3. ...

  10. 微信小程序组件解读和分析:十、input输入框

    input输入框组件说明: 本文介绍input 输入框的各种参数及特性. input输入框示例代码运行效果如下: 下面是WXML代码: [XML] 纯文本查看 复制代码 ? 01 02 03 04 0 ...