• pandas 学习(四)—— 数据处理(清洗)、缺失值的处理


    创建 DataFrame:

    df = pd.DataFrame(np.random.randint(0, 10, (2, 4)), columns=list('ABCD'))

    0. 为 data frame 添加新的属性列

    >> df['total'] = df['A'] + df['B'] + df['C'] + df['D']
        # 等价于 df['total'] = df.A + df.B + df.C + df.D

    1. 数据类型

    • df.values ⇒ 返回的是 numpy 下的多维数组
      • df.column_name.values ⇒ 返回的也是 numpy 下的数组类型
    • df.dtypes:返回的是各个属性列的类型
      • df.select_dtypes([np.object])
      • df.select_dypes([bool])

    2. 简单数据统计

    • 统计某一属性可能的取值:df.column_name.unique()
    • 统计出现的次数:df.column_name.value_counts()
      • column_name 对应的是该 DataFrame 中某列的列名;
      • 也即 pandas 下的 DataFrame 对象直接支持 点+列名的方式进行索引;

    3. 缺失值的处理

    • 所有缺失值字段填充为 0:df.fillna(0),一定要十分注意的一点是,df.fillna() 操作默认(inplace=False)不是 inplace,也即不是对原始 data frame 直接操作修改的,而是创建一个副本,对副本进行修改;
      • df.fillna(0, inplace=True)
      • df = df.fillna(0)
    • 舍弃:
      • 舍弃那些全行为 NaN 的行,以及全列为 NaN 的行:
        • df.dropna(axis=[0, 1], how=’all’)
      • 删除某些行和列:
        • df.drop([], axis=1, inplace=True) ⇒ axis = 1,删除列;
        • df.drop([], axis=0, inplace=True) ⇒ axis = 0,删除行;
    • 均值填充

      age_mean = data.Age.mean()      # age_mean = data['Age'].mean()
      data.Age[data['Age'].isnull()] = age_mean   # data['Age'] == data.Age 二者是等效的
  • 相关阅读:
    单例模式 (线程安全)
    Hystrix (容错,回退,降级,缓存)
    Feign负载均衡
    Ribbon远程调用
    Eureka服务注册与发现
    适配器模式
    docker学习(二)
    使用Eclipse进行远程调试(转)
    docker学习(一)
    Mysql批量更新的一个坑-&allowMultiQueries=true允许批量更新(转)
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9421731.html
Copyright © 2020-2023  润新知