Pandas学习2

Pandas学习2

None

两种缺失数据:None、np.nan(NaN)
None是python自带的,不能参与计算。类型是object
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

np.nan

浮点类型,说明能参与计算,但是结果是nan
在这里插入图片描述
在这里插入图片描述

pandas中的None和np.nan

pandas中的None和np.nan都视为np.nan

如果列中有一个数变成了浮点数,那么整个列都会变成浮点数
在这里插入图片描述

判断是否有缺失

isnull()
notnull()
在这里插入图片描述

any() 默认对行处理,判断每一列是否有空数据
在这里插入图片描述

加入axis改成判断行
在这里插入图片描述

删除缺失值

默认axis=0,删除行;加上how=‘all’,只有全部是nan才删除
并且注意这个方法不会修改原来的数据,需要接收返回值
在这里插入图片描述

在这里插入图片描述

子集的功能,用于判断子集中是否有空,有空就删除
在这里插入图片描述

参数thresh,应该是保留至少有n个非NaN数据的行/列

In [6]: data
Out[6]: 
    0     1     2     3   4

0  32  38.0  11.0  69.0  34

1  59   NaN   NaN   NaN  62

2  14  79.0   NaN   NaN  78

3  77  76.0  17.0   NaN  89

4   6  40.0  53.0  60.0  70



In [7]: data.dropna(thresh=1)

Out[7]: 

    0     1     2     3   4

0  32  38.0  11.0  69.0  34

1  59   NaN   NaN   NaN  62

2  14  79.0   NaN   NaN  78

3  77  76.0  17.0   NaN  89

4   6  40.0  53.0  60.0  70



In [8]: data.dropna(thresh=2)

Out[8]: 

    0     1     2     3   4

0  32  38.0  11.0  69.0  34

1  59   NaN   NaN   NaN  62

2  14  79.0   NaN   NaN  78

3  77  76.0  17.0   NaN  89

4   6  40.0  53.0  60.0  70



In [9]: data.dropna(thresh=3)

Out[9]: 

    0     1     2     3   4

0  32  38.0  11.0  69.0  34

2  14  79.0   NaN   NaN  78

3  77  76.0  17.0   NaN  89

4   6  40.0  53.0  60.0  70

填充缺失

用指定的值去填充
在这里插入图片描述

用其他值去填充,这里可以设置填充方向和填充方法,b开头的是向后,其他是向前填充;这里limit是限制一个数填充的次数,1表示一个数只能填充一个位置
在这里插入图片描述

层级索引

是指这种多层级的索引
在这里插入图片描述

创建层级数据框
隐式创建,即直接写,索引变成两个数组,这样创建出来的索引就是多层的索引
在这里插入图片描述

同理,series也可以创建多层索引
在这里插入图片描述

显式构造pd.MultiIndex,这种和上种基本一致
在这里插入图片描述

使用元祖tuple
在这里插入图片描述

使用product,即乘积的方式,相对方便,但是也要看情况使用,比如这里两个班的学生名字都一样明显不太合适
在这里插入图片描述

多层索引对象的索引或切片操作

原则:当有多层索引的时候,不能直接使用内层索引
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

切片只能切外层的索引,如果要切出想要的结果,可以使用iloc进行切片
在这里插入图片描述

对列索引同样的道理,也不能直接切内层,可以使用隐式索引

在改变其中数据的时候,直接该在这里插入图片描述

先将int类型修改为float类型,再修改
在这里插入图片描述

这种可以直接改
在这里插入图片描述

索引的堆(stack)

索引的堆指的是 多层索引中行索引和列索引的转换
行着的索引变成竖着是stack,反之是unstack

这里看到有返回值,说明不会修改原数据

这里操作的是最里层,因为有个参数是level,默认是-1,就是最里层;
默认最外层是0,里面是1
在这里插入图片描述

在这里插入图片描述

如果加上level参数,转换后总是出现在最里层
在这里插入图片描述

在这里插入图片描述

聚合

在这里插入图片描述

在这里插入图片描述

多层聚合
在这里插入图片描述

将日期转化为可以运算的数据类型

在这里插入图片描述

在这里插入图片描述

将date 设置为行索引,keys为要设置为索引的列
在这里插入图片描述

重新将索引变成数据
在这里插入图片描述

拼接(级联和合并)

pd.concat 和 df.append 是级联操作
pd.merge 是合并操作

生成一个df的函数
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

不匹配级联,匹配的级联,不匹配的索引,补nan
在这里插入图片描述

在这里插入图片描述

左连接
在这里插入图片描述

右连接,保留df2的列
在这里插入图片描述

append

verify这个参数的意思是检查拼接的数据是否有重复,如果重复就报错了
在这里插入图片描述

在这里插入图片描述

合并merge

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

也可以用df调用
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

多对多,笛卡尔积
在这里插入图片描述

在这里插入图片描述

多个列相同,需要指定按照哪个列合并,并且另一个列合并以后会自动区分
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

内合并,默认是内合并
在这里插入图片描述

在这里插入图片描述

左右合并
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

补充知识点

query 应该很常用
在这里插入图片描述

删除数据中的行或者列,drop()
在这里插入图片描述
在这里插入图片描述

查看缺失数据的行(学会使用条件的这种写法)
在这里插入图片描述

在这里插入图片描述

这个警告的意思是说是对数据框df的一个部分进行赋值,但是内存里没有直接生成这个部分,所以赋值失败
在这里插入图片描述

所以需要将这个部分创造出来,再进行赋值
在这里插入图片描述

那么如何将赋值后的结果再重新给到数据框呢?
在这里插入图片描述

删除缺失数据
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

读取数据

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

从mysql中读取
在这里插入图片描述

从url中读取
在这里插入图片描述

重复数据检测

df.duplicated()
在这里插入图片描述

df.drop_duplicates()
在这里插入图片描述

或者直接用条件,采用逻辑符号写
在这里插入图片描述
在这里插入图片描述

keep= ‘last’,从后往前看
在这里插入图片描述

用subset定义在子集中查看
在这里插入图片描述

映射

在这里插入图片描述

replace替换函数

在这里插入图片描述

在这里插入图片描述

map函数

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

rename 替换索引

对于一个字典:
在这里插入图片描述

在这里插入图片描述

异常值判断

在这里插入图片描述
describe()
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

抽样

在这里插入图片描述

按照take中的顺序拿数据
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

用随机数和take结合实现又放回抽样
在这里插入图片描述

分组聚合

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

推荐先取值再聚合
在这里插入图片描述

将和的那一列追加到原列表中
在这里插入图片描述

练习
在这里插入图片描述

求白色的总价
在这里插入图片描述

在这里插入图片描述

合并到原数据中
在这里插入图片描述

添加前后缀
在这里插入图片描述

使用transform和apply实现

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值