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中lambda与def用法对比实例分析
Apr 30 Python
python实现给数组按片赋值的方法
Jul 28 Python
Python django实现简单的邮件系统发送邮件功能
Jul 14 Python
Python数据处理numpy.median的实例讲解
Apr 02 Python
TensorFlow打印tensor值的实现方法
Jul 27 Python
使用Template格式化Python字符串的方法
Jan 22 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
Jul 23 Python
python检测服务器端口代码实例
Aug 31 Python
python实现输入任意一个大写字母生成金字塔的示例
Oct 27 Python
浅谈keras保存模型中的save()和save_weights()区别
May 21 Python
Python Celery异步任务队列使用方法解析
Aug 10 Python
python实现简单猜单词游戏
Dec 24 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
CodeIgniter安全相关设置汇总
2014/07/03 PHP
PHP生成json和xml类型接口数据格式
2015/05/17 PHP
JavaScript中Math对象使用说明
2008/01/16 Javascript
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
js中的数组Array定义与sort方法使用示例
2013/08/29 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
2014/09/01 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
分享两款带遮罩的jQuery弹出框
2015/12/30 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
JS获取及验证开始结束日期的方法
2016/08/20 Javascript
jQuery实现图片轮播效果代码
2016/09/27 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
实现easyui的datagrid导出为excel的示例代码
2016/11/10 Javascript
JS常用正则表达式总结【经典】
2017/05/12 Javascript
ES6学习教程之块级作用域详解
2017/10/09 Javascript
vue双向绑定及观察者模式详解
2019/03/19 Javascript
Vue将页面导出为图片或者PDF
2020/08/17 Javascript
Vue3 的响应式和以前有什么区别,Proxy 无敌?
2020/05/20 Javascript
[01:04:05]VG vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python操作gmail实例
2015/01/14 Python
TensorFLow用Saver保存和恢复变量
2018/03/10 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
对numpy中向量式三目运算符详解
2018/10/31 Python
Django获取应用下的所有models的例子
2019/08/30 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
Python3.7黑帽编程之病毒篇(基础篇)
2020/02/04 Python
利用Python pandas对Excel进行合并的方法示例
2020/11/04 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
泰国汽车、火车和轮渡票预订网站:Bus Online Ticket
2017/09/09 全球购物
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
二年级体育教学反思
2014/01/15 职场文书
2016年企业安全生产月活动总结
2016/04/06 职场文书
MySQL的Query Cache图文详解
2021/07/01 MySQL
go goroutine 怎样进行错误处理
2021/07/16 Golang
微信小程序纯CSS实现无限弹幕滚动效果
2022/09/23 HTML / CSS