pandas 高级用法

处理缺失值

  • 缺失值是np.NaN

    1. 判断是否NaN缺失
      pd.isnull(df).any()
      pd.notnull(df).all()
    2. 处理
      • 删除 df.dropna(axis=)

      • 替换 df.fillna(0, method='ffill', limit=1)

  • 缺失值是其他字符(例如?)
    1.先替换成NaN: df.replace('?', np.nan)
    2.再按NaN处理缺失值


数据离散化

  1. 分组
    • 自动分组 new_sr = pd.qcut(sr, bins=3)
    • 自定义分组 new_sr = pd.cut(sr, bins=[0, 165, 185, 300])
  2. one-hot编码
    df = pd.get_dummies(new_sr , prefix=)

合并

  • 方向合并
    pd.concat([df1, df2], axis=0)

    axis=0竖直合并
    axis=1 水平合并

  • 索引合并
    pd.merge()
    • 内连接


      pd.merge(left, right, how='inner', on=['key1', 'key2'])
    • 左连接


      pd.merge(left, right, how='left', on=['key1', 'key2'])
  • 右连接


    pd.merge(left, right, how='right', on=['key1', 'key2'])
  • 外连接


    pd.merge(left, right, how='outer', on=['key1', 'key2'])

交叉表与透视表

  • 交叉表
    pd.crosstab()

  • 透视表
    pd.pivot_table()

分组与聚合

  • 分组
    df.groupby()

你可能感兴趣的:(pandas 高级用法)