pandas数据结构之Dataframe

    -- 综述
        numpy主要用于进行运算
        dataframe更切合于业务逻辑

    -- dataframe的常用的属性
        属性              说明
        shape            Dataframe的形状
        values            DataFrame的值,numpy.ndarray
        index            行索引
        index.name        行索引的名字
        columns            列索引
        columns.name    列索引的名字

    --  dataframe常规操作, dataframe的增删改查
        访问, 修改: 航切片, 列索引, loc, iloc
        增加一列: data['new] = pd.Serise(new) , merge, concat
        增加一行: concat, dataframe.append(df2,ignore_index=True)
        删: drop, drop_duplicates, dropna
        改: iloc访问具体数据或者使用新的Series(dict),替换当前行.例d_index = list(df.columns)能将列索引转换为列表,再访问index

    -- 级联 concat, 直接连接在一起, 空补NAN
        级联参数
    
        axis 轴向 0~1
        join 级联方式 inner outer
        join_axes [pd.Index([index1,index2....])] 指定索引为连接对象
        ignore_index True\False 开启是否忽略索引
        keys 设置级联后分区的名称
        

    -- 合并 merge, 需要提供参考列
        合并参数
    
        on label,[label1,label2...] 设置合并参考列
        left_on\right_on label分别设置左右两个表的合并参考列,一般用于不存在相同列标签的情况
        left_index\right_index True,False 分别设置是否开启以左\右行索引作为合并参考列
        how 指定合并方式 inner outer left right
        suffiex [suffiex1,suffiex2] 设置没有参与合并的相同的列标签的后缀
        
        合并参考列情况: 
            行上: 一对一, 一对多, 多对多
            列上: 一列, 多列

    -- pandas的cut() 为了便于分析,连续数据常常离散化或拆分为“面元”(bin)
        pd.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise')
        参数bins用于指定范围区间,
        参数right用于指定那边是开区间,闭区间.
        参数lable用于面元的名称

    -- Series/DataFrame运算与ndarray运算的区别
        ndarray有广播,通过重复已有值来计算
        Series与DataFrame没有广播,如果对应index没有值,则记为NaN;或者使用add的fill_value来补缺失值

    -- 删除重复元素
        drop_duplicates()
        dataframe.duplicates()
    ******************************
      dataframe.drop 删除一行或一列
          label 指定删除的行或列标签(也可以是列表)
          axis 改变删除的方向
          inplace=True
      dataframe.drop_duplicates 删除重复元素
          keep 'first','last',保留第一个或者最后一个
          inplace=True
      dataframe.dropna 删除空值
          axis 轴向
          how 'any','all',有一个就删除或者全部为nan才删除
          inplace=True

    -- 映射
        replace()函数
            dataframe.rerplace({'替换前内容':'替换后的内容'})
        map()函数
            map不接受可迭代函数, 例如sum() 
            map是Series的函数, 不是dataframe的函数
            map()的函数的参数可以是 字典, lambda function
        rename()函数
            dataframe.rename({'替换前索引':'替换后的索引'})
        apply()函数
            apply将函数应用到由各列或行所形成的一维数组上。维度是整个一行或者整个一列.
            apply(function, axis=0,)

    -- dataframe的异常值检测和过滤
        1.使用dataframe.describe()查看数据分布情况
        2. 确定过滤条件 bool_list
        3. 使用过滤条件筛选符合条件的数据
        4. 获取符合条件的索引标签
        5. 使用drop函数,通过索引标签把异常值删除
     ********************************
        # 假设大于3*std的数据即为异常数据
        condition = np.abs(data) > 3*data.std()
        # 获取包含空值的行,相当于确认了满足条件的数据样本
        drop_datas = data[condition.any(axis=1)]
        # 获取符合条件的索引
        drop_index = drop_datas.index
        # 根据索引删除符合条件的数据
        data.drop(drop_index,inplace=True)

    -- dataframe排序
        使用.take()函数排序
        可以借助np.random.permutation()函数随机排序
        随机抽样
        当DataFrame规模足够大时,直接使用np.random.randint()函数,就配合take()函数实现随机抽样

    -- dataframe的数据分类操作: groupby()函数
        DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs)

    -- 创建多成索引
        index = [('California',2000),('California',2010),
            ('New York',2000),('New York',2010),
            ('Texas',2000),('Texas',2010)]
        Mindex = pd.MultiIndex.from_tuples(index)
        Mindex = pd.MultiIndex.from_product([['California','New     York','Texas'],[2000,2010]])
        pop = DataFrame(populations,index=Mindex,columns = ['人口'])
        pop

    replace 替换值
    rename  热换索引
    map     映射一行或一列,通常是一列


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值