python 实现rolling和apply函数的向下取值操作


Posted in Python onJune 08, 2020

我就废话不多说了,大家还是直接看代码吧!

import pandas as pd

def get_under_rolling(df,window,user,name):
  df[name] = df[user].iloc[::-1].rolling(window=window).apply(lambda x:x[0]).iloc[::-1]
  return df

if __name__ == '__main__':
  df = pd.DataFrame({'a':[1,2,3,4,5],
          'b':[2,3,4,5,6]})
  # 把b列向下取值作为新的c列
  df = get_under_rolling(df, window=3, user='b',name='c')

原始df

python 实现rolling和apply函数的向下取值操作

新的df

python 实现rolling和apply函数的向下取值操作

补充知识:python:利用rolling和apply对DataFrame进行多列滚动,数据框滚动

看代码~

# 设置一个初始数据框
df1 = [1,2,3,4,5]
df2 = [2,3,4,5,6]
df = pd.DataFrame({'a':list(df1),'b':list(df2)})
print(df)
a b
 0 1 2
 1 2 3
 2 3 4
 3 4 5
 4 5 6

下面是滚动函数

# 多列滚动函数
# handle对滚动的数据框进行处理
def handle(x,df,name,n):
  df = df[name].iloc[x:x+n,:]
  print(df)
  return 1
# group_rolling 进行滚动 
# n:滚动的行数
# df:目标数据框
# name:要滚动的列名
def group_rolling(n,df,name):
  df_roll = pd.DataFrame({'a':list(range(len(df)-n+1))})
  df_roll['a'].rolling(window=1).apply(lambda x:handle(int(x[0]),df,name,n),raw=True)

对初始数据框进行滚动

其中:

n=2,name=[‘a',‘b']
group_rolling(n=2,df=df,name=['a','b'])

每次滚动的结果如下:

a b
0 1 2
1 2 3

  a b
1 2 3
2 3 4

  a b
2 3 4
3 4 5

  a b
3 4 5
4 5 6

以上这篇python 实现rolling和apply函数的向下取值操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的re模块正则表达式操作
May 25 Python
Python实现字典按照value进行排序的方法分析
Dec 23 Python
Python数据处理numpy.median的实例讲解
Apr 02 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
Aug 30 Python
Python基础之循环语句用法示例【for、while循环】
Mar 23 Python
Python 实现遥感影像波段组合的示例代码
Aug 04 Python
Flask框架学习笔记之模板操作实例详解
Aug 15 Python
python 经典数字滤波实例
Dec 16 Python
Pycharm打开已有项目配置python环境的方法
Jul 03 Python
django restframework serializer 增加自定义字段操作
Jul 15 Python
python为什么要安装到c盘
Jul 20 Python
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
Apr 14 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
Jun 08 #Python
Python实现查找数据库最接近的数据
Jun 08 #Python
python numpy库np.percentile用法说明
Jun 08 #Python
python thrift 实现 单端口多服务的过程
Jun 08 #Python
Python astype(np.float)函数使用方法解析
Jun 08 #Python
python opencv 实现读取、显示、写入图像的方法
Jun 08 #Python
python:删除离群值操作(每一行为一类数据)
Jun 08 #Python
You might like
一贴学会PHP 新手入门教程
2009/08/03 PHP
php 随机排序广告的实现代码
2011/05/09 PHP
PHP PDOStatement::bindValue讲解
2019/01/30 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
2019/04/09 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
jQuery入门知识简介
2010/03/04 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
2017/02/21 Javascript
微信小程序实现带刻度尺滑块功能
2017/03/29 Javascript
微信小程序中做用户登录与登录态维护的实现详解
2017/05/17 Javascript
JS实现带动画的回到顶部效果
2017/12/28 Javascript
JavaScript设计模式之构造函数模式实例教程
2018/07/02 Javascript
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
2018/08/24 Javascript
用vue设计一个日历表
2020/12/03 Vue.js
JS removeAttribute()方法实现删除元素的某个属性
2021/01/11 Javascript
Python 初始化多维数组代码
2008/09/06 Python
详解Python操作RabbitMQ服务器消息队列的远程结果返回
2016/06/30 Python
Python多进程入门、分布式进程数据共享实例详解
2019/06/03 Python
scikit-learn线性回归,多元回归,多项式回归的实现
2019/08/29 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
Python爬虫防封ip的一些技巧
2020/08/06 Python
HTML5 本地存储实现购物车功能
2017/09/07 HTML / CSS
荷兰本土平价百货:HEMA
2017/10/23 全球购物
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
售后服务科岗位职责范文
2013/11/13 职场文书
我未来的职业规划范文
2014/01/11 职场文书
团队经理竞聘书
2014/03/31 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
助学贷款贫困证明
2014/09/23 职场文书
2014年派出所工作总结
2014/11/21 职场文书
继承公证书格式
2015/01/26 职场文书
面试复试通知单
2015/04/24 职场文书
2015年信息宣传工作总结
2015/05/26 职场文书
mysql查看表结构的三种方法总结
2022/07/07 MySQL