机器学习(5)- Pandas

pandas

1. Pandas介绍[**]

  1. 概念

    • 是一个专门用于数据挖掘的科学计算库
    • 它封装了matplotlib和numpy
    • 独特数据类型(DataFrame), 让数据更有表现力
  2. 案例的小知识点:

    1. 创建DataFrame

      • pd.DataFrame(数组, index, columns)
        • Index;行索引
        • columns: 列索引
    2. 生成日期

      • pd.date_range(start, end, periods, freq)
        • start: 起始日期
        • end: 结束日期
        • periods: 日期序列有多少天( 与end选其1)
        • freq: 默认日期是连续的, 如果指定为’B’, 跳过周六日.
      # 1. 生成10只股票5天涨跌幅
      stock_change = np.random.normal(0, 1, (10, 5))
      # 生成行索引列表
      index = ['股票{}'.format(i) for i in range(stock_change.shape[0])]
      # 在创建DataFrame指定列索引
      columns = pd.date_range('20191010', periods=5, freq='B')
      stock_rise = pd.DataFrame(stock_change, index=index, columns=columns)
      stock_rise
      
    3. DataFrame结构

      1. 用于描述二维数据的结构
        常见属性:
        形状: shape
        行索引: index
        列索引: columns
        数据的ndarray: values
        转置: T
        常见方法:
        获取前5条数据: head()
        获取后5条数据: tail()
      2. DatatFrame 修改索引
        • 对象.index = 行索引列表
        • 注意: 只能整体修改,不能只修改一部分
      3. 重设索引
        • 对象.reset_index(drop=False)
        • 重置索引, 索引就变成了从0开始的索引了
        • drop: 是否删除原索引, 默认False, 如果指定为True就删除原索引
      4. 设置索引
      • 对象.set_index([‘列名’, …])
    4. MultiIndex与Panel

      • MultiIndex: 多维索引
        • 具有多维索引DataFrame, 可以表示多维数据结构.
      • Panel: 用于存储三维数据的结构, 新版Pandas已经废除这个类了.
        • 创建: pd.Panel(data, items, major_axis, minor_axis)
          • data: 数据
          • items: 第一个维度的索引
          • major_axis: 第二维度索引
          • minor_axis: 第三个维度索引
        • 使用
          • 索引与切片
        • 对象[:,:,:]
      • 注意: 在最新的pandas上这个Panel这个类已经不可用了.
    5. Series:

      • 作用: 用于存储一维数据的结构
      1. 创建series
        1. 直接创建, 自动生成从0开始索引
          1. pd.Series(数组/list)
        2. 创建指定索引
          • pd.Series(数组/list, index=列表)
        3. 使用字典创建
          • pd.Series({‘键’:‘值’, …})
          • 说明: 键就是索引, 值就是数据
    6. 常用属性
      - 索引: index
      - 值: values

2. 基本数据操作[****]

  1. 索引操作

    1. 案例引入小知识点:
      • 读取csv
        • pd.read_csv(‘路径’)
      • 删除特征值(列)
        • 对象.drop(删除索引列表, axis=0)
        • axis=0, 就按行删除, 默认
    • axis=1, 按列删除.
    1. 直接使用行列索引, 先列后行
      • 对象[‘列名’[‘行索引名称’]
    2. 先行后列, 名称索引
      • 对象.loc[行索引名称, 列索引名称]
      • 对象.loc[ :, :]
  2. 先行后列, 数值索引

    • 对象.iloc[行索引名称, 列索引名称]
    • 对象.iloc[ :, :]
    1. 先行后列, 数值和名称索引混合使用
      • 对象.ix[行索引名称, 列索引名称]
      • 对象.ix[ :, :]
  3. 赋值操作

    1. 对象[‘列名’] = 值/列表
    2. 对象.列名 = 值/列表
    • 两种方式的区别是什么
      • 对象[‘列名’] 也可修改列, 也可以添加新列
      • 对象.列名 只能修改列, 不能添加新列
  4. 排序:

    • DataFrame排序
      1. 按照值进行排序
        • 对象.sort_values(by=[排序的列名,…], ascending=True)
          • ascending=True 升序, 默认
          • ascending=False 降序
      2. 按照索引进行排序
        • 对象.sort_index(ascending=True)
    • series:
      1. 值排序
        • 对象.sort_values(ascending=True)
      2. 索引排序
        • 对象.sort_index(ascending=True)
发布了112 篇原创文章 · 获赞 289 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/WeiLanooo/article/details/102533619