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中的list列表数据结构用法
Mar 12 Python
Go/Python/Erlang编程语言对比分析及示例代码
Apr 23 Python
Python实现的批量修改文件后缀名操作示例
Dec 07 Python
Python异常处理知识点总结
Feb 18 Python
python使用Plotly绘图工具绘制气泡图
Apr 01 Python
python验证身份证信息实例代码
May 06 Python
如何基于Python + requests实现发送HTTP请求
Jan 13 Python
PyTorch笔记之scatter()函数的使用
Feb 12 Python
Django中从mysql数据库中获取数据传到echarts方式
Apr 07 Python
Python使用pdb调试代码的技巧
May 03 Python
python两个list[]相加的实现方法
Sep 23 Python
python 远程执行命令的详细代码
Feb 15 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中看实例学正则表达式
2006/12/25 PHP
比较简单的百度网盘文件直链PHP代码
2013/03/24 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
2019/10/21 PHP
js判断变量是否未定义的代码
2020/03/28 Javascript
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
JS中sort函数排序用法实例分析
2016/06/16 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
three.js中文文档学习之如何本地运行详解
2017/11/20 Javascript
详解Vue CLI3配置之filenameHashing使用和源码设计使用和源码设计
2018/08/31 Javascript
vue自定义tap指令及tap事件的实现
2018/09/18 Javascript
layui 中select下拉change事件失效的解决方法
2019/09/20 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
js简单粗暴的发布订阅示例代码
2021/01/23 Javascript
[01:00]选手抵达华西村 整装待发备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
Python使用三种方法实现PCA算法
2017/12/12 Python
python三引号输出方法
2019/02/27 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
Pytorch 数据加载与数据预处理方式
2019/12/31 Python
Python Handler处理器和自定义Opener原理详解
2020/03/05 Python
Pytorch 使用不同版本的cuda的方法步骤
2020/04/02 Python
Jupyter Notebook添加代码自动补全功能的实现
2021/01/07 Python
CSS+jQuery+PHP+MySQL实现的在线答题功能
2015/04/25 HTML / CSS
室内设计专业个人的自我评价
2013/10/19 职场文书
应届中专生自荐书范文
2014/02/13 职场文书
社区工作感言
2014/02/21 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
2015年全国保险公众宣传日活动方案
2015/05/06 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
2015年国庆放假通知范文
2015/08/18 职场文书
浅谈Python数学建模之整数规划
2021/06/23 Python
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL