数据分析11——Pandas中数据偏移/数据切分/数据结构转换

数据偏移:

1、shift函数:

  • 在 Pandas 中,shift 函数用于将数组的数据向前或向后平移指定的步数。它可以应用于 Series 或 DataFrame 类型的数据中,并返回一个平移后的新数据结构,其中每个元素都被取代为原始序列中对应位置平移值。
  • shift 函数接受一个整数类型的 periods 参数,表示要平移的步数,若该参数为正,则向下平移(即数据后移),若为负,则向上平移(即数据前移)
  • 应用实例:求增长率
    在这里插入图片描述
  • 在pandas中求变化率还有一个函数pct_change函数

2、rolling函数:

  • rolling 函数接受一个 window 参数,表示数据窗口大小,以及一个可选的 min_periods 参数,表示组窗口最小值而不会导致错误结果。然后可以使用许多方法来获得有关每个窗口内的统计信息,例如均值、中位数、和等等
  • 注意:窗口每次就向下移动一行,所以前面的n个数据可能是没法满足窗口计算的数据量的,所以要设定最少可计算的行数,这样前面的数据就能够计算了。
  • 应用实例:
    在这里插入图片描述


数据切分

1、数据切分:

  • 定义:数据切分其实就是让数据以某个列索引为依据,来按照某种规则划分整个数据。
  • 注意:数据切分和数据分组不一样,数据分组本质是分类,而数据切分本质是分段。

2、数据切分会用到的函数总结:

  • 函数名:cut
  • 参数说明:
    • x:必须是一维输入数组,一般就是dataframe数据中某一列数据;
    • bins:整型或者列表,是切分的规则;
    • right:True表示切分区间是左开右闭,否则是左闭右开;
    • 其他参数:【labels,retbins,precision,include_lowest,duplicates,ordered】
  • 举例:按照数据中成绩进行数据切分,等距分为10组:tb[‘等距分箱’] = pd.cut(x=tb[‘成绩’], bins=10, right=False)

  • 函数名:qcut
  • 参数说明:
    • x:必须是一维输入数组,一般就是dataframe数据中某一列数据;
    • q:整型或者列表,是切分的规则,是分位数,如果是列表的话,应该是0~1之间的数字组成的列表;
    • right:True表示切分区间是左开右闭,否则是左闭右开;
    • 其他参数:【labels,retbins,precision,dupliactes】
  • 举例:按照数据中成绩进行数据切分,等频(每组中的数量基本一致)分为4组:tb[‘等频分箱’] = pd.qcut(x=tb[‘成绩’], q=4)

  • 说明:上表中的参数说明中只对必要参数进行了说明,其他参数进行了记录,我也不是很了解,但不影响使用。


数据结构转换

1、字符串内容一列转多列

  • 函数名称:str.split()

  • 参数:第一个参数是切分标识字符,第二个参数是expand,为True则表示返回的是一个dataframe,为False表示返回的是一个series。

  • 举例:
    在这里插入图片描述
    在这里插入图片描述

  • 注意该方法是明确知道可以分为多少列的,下面一种是不确定可以分为多少列的方法,用到split和join

  • 举例:
    在这里插入图片描述


2、对元组/列表形式的字段进行拆分

  • 说明:当然也可以通过字符串处理的方法来完成该任务,但是相对来说这种更简单。
  • 举例:
    在这里插入图片描述

3、数据透视与逆透视

  • 数据透视函数名称:pivot()
  • 参数:
    • index:原来数据中哪个列索引作为新的透视表索引
    • columns:原来数据中哪个列索中的所有类作为新的透视表的列名称
    • values:原来数据中哪个列索引中的数据作为新的透视表中的值
  • 举例:
    在这里插入图片描述
  • 数据逆透视函数名称:melt()
  • 参数:
    • frame:dataframe数据对象
    • id_vars:位置保持不变的字段
    • value_vars:列转为行的字段
    • var_name:列转为行后,新字段的别名
    • value_name:值列的别名
  • 举例:
    在这里插入图片描述

4、DataFrame转为字典或列表

  • DataFrame转为字典函数名称:to_dict()
  • 举例:
    在这里插入图片描述
  • DataFrame转为列表函数名称:to_dict()
  • 说明:dataframe是没法直接转列表的,但是可以先转为数组array类型,然后再转列表
  • 举例:
    在这里插入图片描述

总结:

  • 1、pandas是由numpy发展而来的,所以pandas中有很多非常便捷的函数,对于函数的学习无非就是了解其使用场景,掌握参数的意义。
  • 2、pandas的很多数据处理工作和函数我自己的感受就是把excel中的功能放到了python中实现,其实在你excel工具使用到炉火纯青的地步也可以在excel中处理好数据,然后再传入python中进行计算分析。当然可能python中通过函数来处理数据的方法计算速度可能更快,同时也可以把所有数据分析的流程放到jupyter中统一完成,就避免了一次数据分析使用多种工具的尴尬。
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值