python之pandas库

python之pandas库

1. 前言

numpy在处理带标签的数据上有些力不从心。
在这里插入图片描述

2. 对象创建

2.1 带标签的一维数组series

  • 语法
pd.Series(data, index=index, dtype=dtype)

data: 数据,可以是列表,字典或者Numpy数组
index: 索引(标签),可选参数
dtype: 数据类型,可选参数

2.1.1 用列表创建

  • index缺省,默认为整数序列
    在这里插入图片描述
  • 增加index标签
    在这里插入图片描述
  • 增加数据类型
    如果缺省,根据传入的数据自动挡那个判断
    在这里插入图片描述

在这里插入图片描述
数据支持多种类型,如

在这里插入图片描述
数据类型可以被强制改变
在这里插入图片描述
若元素不能被强制转化成对应的数据类型,将会报错。

2.1.2 用一维numpy数组创建

在这里插入图片描述

2.1.3 用字典创建

  • 默认字典中的key为对象的index, value为对象中的data
    在这里插入图片描述
  • 字典创建,如果指定index, 则会到字典中筛选,找不到的,设置值为Nan
    在这里插入图片描述

2.1.4 data为标量的情况

此时,值会自动赋值,填满所有标签。

在这里插入图片描述

2.2 带标签的多维数组DataFrame

  • 语法
pd.DataFrame(data, index=index, columns=columns)

data: 数据,可以是列表,字典,或者numpy数组
index: 索引,可选参数
columns: 列标签,可选参数

2.2.1 通过Series对象创建

在这里插入图片描述
列标签缺省,默认从0开始的整数
在这里插入图片描述

2.2.2 通过Series对象字典创建

在这里插入图片描述

在这里插入图片描述
数据不够时,会自动对齐
在这里插入图片描述

2.2.3 通过字典列表对象创建

  • 将列表中的每一个字典作为行值

  • 字典索引作为index,字典键作为columns
    在这里插入图片描述

  • 不存在的键,会默认值为Nan
    在这里插入图片描述

2.2.4 通过Numpy二维数组创建

在这里插入图片描述

3. DataFram性质

3.1 属性

在这里插入图片描述

3.1.1 df.values返回numpy数组表示的数据

即去除了标签
在这里插入图片描述

3.1.2 df.index返回行索引

在这里插入图片描述

3.1.3 df.columns返回列索引

在这里插入图片描述

3.1.4 df.shape 返回形状,维度

返回(m, n)表示m行n列
在这里插入图片描述

3.1.5 df.size 返回数据大小

在这里插入图片描述

3.1.6 pf.dtype返回每列数据的数据类型

在这里插入图片描述

3.2 索引

在这里插入图片描述

3.2.1 获取列

  • 字典方式
    在这里插入图片描述

  • 对象属性方式
    在这里插入图片描述

3.2.2 获取行

  • 绝对索引 df.loc
    在这里插入图片描述

  • 相对索引 df.iloc

在这里插入图片描述

3.2.3 获取标量

  • 绝对索引
    在这里插入图片描述

  • 相对索引

在这里插入图片描述

3.2.4 Series对象的索引

取dataframe一行数据为Series对象,验证:
在这里插入图片描述

在这里插入图片描述

3.3 切片

在这里插入图片描述

3.3.1 行切片

在这里插入图片描述

在这里插入图片描述
第三行取不到

3.3.2 列切片

在这里插入图片描述

3.3.3 多种多样的取值

  • 行列同时切片
    在这里插入图片描述

  • 行切片,列分散取值
    在这里插入图片描述

  • 行分散取值,列切片
    在这里插入图片描述

  • 行列均分散取值
    在这里插入图片描述
    loc是不能成功的。

3.4 布尔索引

3.4.1 比较运算

在这里插入图片描述

在这里插入图片描述

3.4.2 掩码

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

3.4.3 isin()方法

在这里插入图片描述

3.5 赋值

3.5.1 增加新列

  • 增加新列
    在这里插入图片描述
  • 修改赋值

在这里插入图片描述

3.5.2 修改Index和columns

在这里插入图片描述

4. 数值运算及统计分析

4.1 数据查看

在这里插入图片描述

4.1.1 查看前面的行

在这里插入图片描述

4.1.2 查看后面的行

在这里插入图片描述

4.1.3 查看总体信息

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

4.2 调用函数

4.2.1 向量化运算

在这里插入图片描述

4.2.2 矩阵化运算

在这里插入图片描述

  • 转置
    在这里插入图片描述
  • dot矩阵相乘
    在这里插入图片描述
    numpy和Pandas运算对比

纯粹的计算在Numpy中执行更快,Numpy更侧重于计算,Pandas侧重于数据处理。
Pandas基于Numpy,除了Pandas中额外的开销外,计算速度是差不多的。
python中原生的for循环速度明显慢很多。

4.2.3 广播运算

在这里插入图片描述

  • 按行广播
    在这里插入图片描述

  • 按列广播
    在这里插入图片描述

4.2.4 Pandas相对Numpy的新方法

  • 索引对齐
    在这里插入图片描述

4.3 统计相关

4.3.1 种类

在这里插入图片描述

4.3.2 排序

  • 通过某个列标签进行排序
    在这里插入图片描述
  • 按轴进行排序(按行列标签进行排序)

在这里插入图片描述

在这里插入图片描述

4.3.3 非空,求和,最大最小值

  • 非空
    在这里插入图片描述
  • 求和
    sum默认是以列为单位,将该列对应的所有行值相加

在这里插入图片描述

  • 最大最小值
    在这里插入图片描述

4.3.4 均值,方差,标准差

  • 均值
    在这里插入图片描述
  • 方差

在这里插入图片描述

  • 标准差
    在这里插入图片描述

  • 中位数
    在这里插入图片描述

  • 众数
    在这里插入图片描述

  • 75%分位数
    在这里插入图片描述

  • 一网打尽方法

在这里插入图片描述
数值类型:
在这里插入图片描述
字符类型:
在这里插入图片描述

4.3.5 相关系数,协方差

  • 相关性系数
    在这里插入图片描述
  • 看与某一列的相关系数
    在这里插入图片描述

4.3.6 汇总输出 decribe()

4.3.7 apply()自定义输出

在这里插入图片描述

  • cumsum: 累加函数

5 处理缺失值

5.1 发现缺失值

在数据中最好不要None,None更加消耗资源,使用NaN,np.NaN是一种特殊的浮点数。
在这里插入图片描述

5.2 删除缺失值

5.2.1 删除整行

在这里插入图片描述

5.2.2 删除整列

在这里插入图片描述

5.2.3 删除全是缺失值的行或者列

在这里插入图片描述

5.2.4 删除只有存在缺失值的行或者列

将5.2.3中的All改为any即可。

5.3 填充缺失值 fillna

5.3.1 按照指定值进行填充

在这里插入图片描述

5.3.2 按照均值进行填充

在这里插入图片描述

6. 合并数据

6.1 concat

  • 垂直合并
    在这里插入图片描述
    在这里插入图片描述

  • 水平合并

在这里插入图片描述

  • 当索引产生重复时,需要对索引进行重新排列,加上ignore_index=True即可
    在这里插入图片描述

6.2 merge对齐合并

两个对象元素存在相同时候,需要进行merge合并
在这里插入图片描述

7. 分组和数据透视表

在这里插入图片描述

7.1 分组groupby

7.1.1 延迟计算

在这里插入图片描述
执行groupby()时,会返回一个对象,并没有开始计算,等待调用函数时,采用进行计算。
在这里插入图片描述

7.1.2 按列取值,调用方法

  • 按列取值
    在这里插入图片描述

  • 按组迭代
    在这里插入图片描述

  • 调用方法
    在这里插入图片描述

  • 支持更复杂的操作
    在这里插入图片描述

  • 过滤
    在这里插入图片描述

  • 转换
    在这里插入图片描述

7.1.3 apply方法

在这里插入图片描述

7.1.4 设置分组值

在这里插入图片描述

  • 用字典将索引映射到分组
    在这里插入图片描述
  • 任意的python函数进行分组
    在这里插入图片描述
  • 多个有效值组成的列表
    在这里插入图片描述

7.2 数据透射表

privot_table

8. 其它

8.1 向量化字符串操作

8.2 时间序列化处理

8.3 多级索引

8.4 高性能的eval和query

  • 减少了复合代数式计算中间过程的内存分配
  • 内存一定,数据越大越有优势
    在这里插入图片描述
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值