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中使用cookielib和urllib2配合PyQuery抓取网页信息
Apr 25 Python
Python生成8位随机字符串的方法分析
Dec 05 Python
浅谈用VSCode写python的正确姿势
Dec 16 Python
python多进程中的内存复制(实例讲解)
Jan 05 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
Jan 22 Python
python小程序实现刷票功能详解
Jul 17 Python
Python安装与卸载流程详细步骤(图解)
Feb 20 Python
python requests.get带header
May 05 Python
Java byte数组操纵方式代码实例解析
Jul 22 Python
scrapy中如何设置应用cookies的方法(3种)
Sep 22 Python
python模拟点击玩游戏的实例讲解
Nov 26 Python
selenium自动化测试入门实战
Dec 21 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/10/09 PHP
PHP-MySQL教程归纳总结
2008/06/07 PHP
PHP 一个随机字符串生成代码
2010/05/26 PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
2014/03/18 PHP
详解PHP错误日志的获取方法
2015/07/20 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
PHP crypt()函数的用法讲解
2019/02/15 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
2019/10/30 PHP
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
2009/05/25 Javascript
页面版文本框智能提示JS代码
2009/11/20 Javascript
animate动画示例(泪奔的小孩)及stop和delay的使用
2013/05/06 Javascript
sogou地图API用法实例教程
2014/09/11 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
jQuery和JavaScript节点插入元素的方法对比
2016/11/18 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
2016/12/14 Javascript
Vue应用部署到服务器的正确方式
2017/07/15 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
2018/02/06 Javascript
JS内置对象和Math对象知识点详解
2020/04/03 Javascript
[02:58]献给西雅图的情书_高清
2014/05/29 DOTA
[05:29]2014DOTA2国际邀请赛 赛后专访:LGDNewbee顺利过关
2014/07/13 DOTA
wxPython中listbox用法实例详解
2015/06/01 Python
使用Python发送各种形式的邮件的方法汇总
2015/11/09 Python
python 内置函数filter
2017/06/01 Python
python绘制双柱形图代码实例
2017/12/14 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
Python切片操作深入详解
2018/07/27 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
itchat-python搭建微信机器人(附示例)
2019/06/11 Python
Python爬虫:url中带字典列表参数的编码转换方法
2019/08/21 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
Pandas的Apply函数具体使用
2020/07/21 Python
详解python os.path.exists判断文件或文件夹是否存在
2020/11/16 Python
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
2014年英语教师工作总结
2014/12/03 职场文书
2015年教师教学工作总结
2015/04/28 职场文书
幼儿园2016年感恩节活动总结
2016/04/01 职场文书