python-数据分析(11-数据规整)

Pandas

11 Pandas之数据规整

11.1索引与分层索引

索引

  • 查看索引:df.index
  • 指定索引:df.index = [,] 个数必须一致
  • 重置索引:df.reindex([,]) 无需个数一致
  • 指定某一列作为index:df.set_index(“M”,drop=False)
  • 返回index的唯一值:df.set_index(“M”).index.unique()
  • df.reset_index():将分层索引层级移动到列中

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

 
 

 

分层索引
分层索引是Pandas一个重要的特性,允许在一个轴上拥有多个索引层级。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

 

 

11.2 数据合并

数据合并也就是说将多个数据集拼接在一起,但是合并的方式主要分为:pandas.merge,pandas.concat,df.join。以下,我们来详细的介绍。

df_l.join
df_l.join(df_r,how=“left”) 默认情况下是把行索引相同的数据合并到一起,以df_l为主。
在这里插入图片描述
 
 
pd.merge
pd.merge(df_l,df_r)    根据一个或多个键将行进行连接

  • how       指定拼接方式;inner,outer,left,right。默认是inner
  • on    需要连接的列名。注:必须是公共列
  • left_on    左边数组中用作连接的列
  • right_on    右边数组中用作连接的列
    在这里插入图片描述
    在这里插入图片描述
     
     

在这里插入图片描述

 
 
pd.concat
pd.concat((df_l,df_r),axis=0) 使对象在轴向上进行黏合或"堆叠"
在这里插入图片描述
在这里插入图片描述

11.3 数据分组与聚合

数据包含在Series、DataFrame数据结构中,可以根据一个或多个键分离到各个组中。分组操作之后,一个函数就可以应用到各个组中,产生新的值。如下图则是简单的分组聚合过程。
在这里插入图片描述

  • df.groupby(‘key’)
    • key为指定分组列

在这里插入图片描述
下面1张图片扩展,可以了解在这里插入图片描述

 
 
 
在这里插入图片描述
聚合函数如下:
在这里插入图片描述
自定义聚合函数
实现步骤:

  • 自定义函数
  • 分组后通过agg或者aggregate进行聚合
def classes_ptp(x):
    return x.max()-x.min()

df1.groupby(by="classes")["grades"].agg(classes_ptp)
df1.groupby(by="classes")["grades"].aggregate(classes_ptp)

在这里插入图片描述
在这里插入图片描述


分组块上应用函数
实现步骤:

  • 定义函数
  • 通过apply方法将函数应用到分组后的数组
def sort_df(df):
    return df.sort_values(by="grades")

df1.groupby(by="classes").apply(sort_df)

除了以上分组形式,还可以通过字典、series、函数进行分组
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值