2020.7.22 Pandas高级操作

发布于 22 天前  9 次阅读


1.学习内容

  • Pandas索引

    • 直接索引
      • 重要:先列后行
    • 数据.loc[]
      • 先行后列
      • 依照 列索引,行索引来获取
      • 以字符串来取值
      • 例子:
        • stock_data.loc["2018-02-27":"2018-02-23"]
    • 数据.iloc[]
      • 先行后列
      • 特点:支持切片
      • 索引下标值
      • 例子:
        • stock_data.iloc[:3,:5]
    • 数据.ix[]
      • 重点:
        • 在pandas的1.0.0版本开始,移除了Series.ix and DataFrame.ix 方法。
      • 先行后列
      • 特点:字符串和数据可以混合使用
      • 慢慢在被替换
  • Pandas 赋值操作

    • 数据[‘’] = 赋值
    • 数据.属性值= 赋值
  • Pandas 排序

    • 介绍
      • 排序有两种形式,一种是行排序,一种是内容排序
    • DataFrame使用排序
      • 数据.sort_values(by=[],ascending=True)
        • by是按照值排序的列字段 必须
        • ascending 默认是升序 False 降序
      • 数据.sort_index()
        • 按照索引排序
    • series排序
      • 介绍
        • series是一维数组
      • 使用
        • stock_data[‘open’].sort_values()
  • Pandas DataFrame 运算

    • 介绍
      • 让DataFrame的内容参与运算
    • 运算使用(对一列进行操作)
      • 可以选定列之后做运算,否则是全表做运算
        • 全表碰到数据不能做运算会出现异常
      • 算数运算 加减…等等
        • series.add()
        • series.sub()
        • 实例:series.add(100) series + 00
      • 逻辑运算(<,>,|,&)
        • 支持索引赋值
        • 支持整列比较
        • 实例:series>100
        • & 和 | 涉及到优先级问题,最好加小括号
      • 逻辑运算函数
        • query(expr)
          • expr是一个字符串
          • 实例:query(“列索引 > 20”)
        • isin(values)
          • 判断是不是在values值的里面
          • 实例:data[“列索引”].isin([1,2])
  • Pandas 统计运算

    • 介绍
      • 对数据进行一些默认的运算
      • min(最小值), max(最大值), mean(平均值), median(中位数), var(方差), std(标准差),mode(众数)
      • 中位数
        • 中位数为将数据从小到大排列,在最中间的那个数为中位数
    • describe()
      • dataframe.describe() 直接使用
      • 综合分析: 能够直接得出很多统计结果,count, mean, std, min, max
    • 累计统计函数
      • cumsum 和
      • cummax 最大
      • cummin 最小
      • cumprod 积
    • 自定义运算
      • apply(func,axis=0)
        • func:自定义函数
        • axis=0 默认是列,axis=1是行
  • Pandas 画图

    • DataFrame.plot(x=None,y=None,kind=‘line’)
      • x x轴值
      • y y轴值
      • kind:str
        • line plot 折线图
        • bar 条形图
        • barh 条形图横过来(90度)
        • hist 直方图
        • pie 饼状图
        • scatter 散点图
  • Pandas 文件的读取和存储

    • 简介
    • 读取格式支持(read_*)
      • csv,json,html,ms,hdf5,sql等等
    • 常见格式使用
      • csv,hdf,json,mysql ,excel
    • csv 使用

      • pd.read_csv(path_or_buf ) 读取csv
        • path_or_buf 路径或者buffer
        • usecols (读取的列名) 列表形式
      • 数据.to_csv(path_or_buf ,columns,index) 写入csv
        • path_or_buf 路径
        • columns 栏目(列)
        • index 是否需要索引 True 需要
    • hdf5使用

      • pd.read_hdf(path_or_buf ,key,mode)
        • path_or_buf 路径
        • mode : {'r', 'r+', 'a'}, default 'r'
      • 数据.to_hdf(path_or_buf )
        • path_or_buf 路径
      • 注意:读取写入文件的后缀 *.h5
    • json 使用

      • pd.read_json(path,orient)
        • path 字节或者路径
        • orient
          *
        • lines
          • 按照每行读取
          • True 推荐使用 效高低一点
        • typ 默认frame
          • 指定转换成的对象类型series或者dataframe
      • 数据.to_json()
    • 拓展 推荐使用HDF5文件
      • 存储支持压缩
      • 读取,存入效率高
      • 支持跨平台 hadoop
  • Pandas 高级处理 缺失值处理

    • 基础操作
      • np.all()
      • np.any()
      • pd.fillna()
      • pd.dropna()
      • data.replace()
    • 缺失值处理
      • 1.判断缺失值
        • np.any(pd.isnull())
          • np.any(pd.isnull(movie)) # 里面如果有一个缺失值,就返回True
        • np.all(pd.notnull())
          • np.all(pd.notnull(movie)) # 里面如果有一个缺失值,就返回False
      • 2.处理缺失值
        • 数据.dropna()
          • movie.dropna()
        • 数据.fillna()
          • movie[i].fillna(value=movie[i].mean(), inplace=True)
        • 数据.replace()
          • wis.replace(to_replace="?", value=np.NaN)
  • Pandas 高级处理 数据离散化

    • 为什么要数据离散化
    • 什么是数据离散化
      • 把一些数据分到某个区间内,使最后用不同的符号或者数字表达
    • 数据离散化api
      • pd.qcut() -- 把数据大致分为数量相等的基类
      • pd.cut() -- 指定一个分组间隔
      • 数量统计
        • 对象.value_counts()
    • one-hot 编码
      • 介绍(哑变量,热独编码)
        • 把数据展现成0-1形式
      • 使用
        • pd.get_dummies(数据,prefix=“前缀”)
        • 数据必须是cut或qcut之后的数据 (存疑)
          • pandas.core.series.Series类型
  • Pandas 高级处理 合并

    • 介绍
      • 多个表分析 需要合并
    • 使用:
      • pd.concat([数据1,数据2],axis = 1)
        • axis 按行还是按列连接
      • pd.merge()
        • left 左表
        • right 右表
        • on 两个字段
          • inner 运算规则 (相同的展示,重复的就多展示一次)
        • how 连接方式 inner
          • left right inner outer
  • Pandas 高级处理 交叉表

    • 1.什么是交叉表,透视表
      • 探索两列数据之间的关系
    • 2.pd.crosstab()
      • 返回具体数量
    • 3.对象.pivot_table()
      • 返回占比情况
  • Pandas 高级处理 分组和聚合

    • 1.介绍
      *
    • 2.使用
      • 对象.groupby()
        • 参数:as_index – 是否进行索引 默认是
      • 可以对数据多次分组(传递列表数据)

2.扩展延伸知识

  • np.Nan是什么类型
    • float
  • dataframe 属性
    • shape,index,columns,values,tail,head
  • python中的值传递技巧
    • 可以传递数组,可以传递单个值,
    • 可以传递对象,可以传递字符串
    • 需要在函数中判断一下,执行什么操作
  • pandas 索引
    • 就是行名
  • hdf 文件
    • Hierarchical Data Format,可以存储不同类型的图像和数码数据的文件格式,并且可以在不同类型的机器上传输,同时还有统一处理这种文件格式的函数库。大多数普通计算机都支持这种文件格式
  • pandas多维可以拆成series
  • zlib使用
  • 中位数
  • 众数
  • mysql 连接查询

3.灵感代办

4.复习内容

  • 创建DataFrame
    • DataFrame类似numpy的二维数组
    • pd.DataFrame(ndarray)
      • 可以是字典{key:[],key1:[]} 不能是常量,只能是列表
    • shape,index,columns,values,T
    • head,tail 获取前几行,后几行

5.学习成果&问题


Ares个人进阶之路