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实现端口转发器的方法
Mar 13 Python
Python中类型检查的详细介绍
Feb 13 Python
numpy实现合并多维矩阵、list的扩展方法
May 08 Python
python抓取网页内容并进行语音播报的方法
Dec 24 Python
python dlib人脸识别代码实例
Apr 04 Python
关于Python3 lambda函数的深入浅出
Nov 27 Python
关于初始种子自动选取的区域生长实例(python+opencv)
Jan 16 Python
TensorFlow实现打印每一层的输出
Jan 21 Python
在Python中通过threshold创建mask方式
Feb 19 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
Feb 28 Python
selenium+python配置chrome浏览器的选项的实现
Mar 18 Python
python实现企业微信定时发送文本消息的实例代码
Nov 25 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 JSON 数据解析代码
2010/05/26 PHP
php Calender(日历)代码分享
2014/01/03 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
php魔术变量用法实例详解
2014/11/13 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
深入浅析PHP7.0新特征(五大新特征)
2015/10/29 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
2017/01/17 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
E3 tree 1.6在Firefox下显示问题的修复方法
2013/01/30 Javascript
js 采用delete实现继承示例代码
2014/05/20 Javascript
jQuery中andSelf()方法用法实例
2015/01/08 Javascript
Javascript基础教程之数据类型 (数值 Number)
2015/01/18 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
jQuery插件HighCharts绘制2D带有Legend的饼图效果示例【附demo源码下载】
2017/03/10 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
React根据宽度自适应高度的示例代码
2017/10/11 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
详解基于原生JS验证表单组件xy-form
2019/08/20 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
2019/10/24 Javascript
[03:48]大碗DOTA
2019/07/25 DOTA
详解Python中open()函数指定文件打开方式的用法
2016/06/04 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
2017/06/09 Python
linecache模块加载和缓存文件内容详解
2018/01/11 Python
TensorFlow实现RNN循环神经网络
2018/02/28 Python
python linecache 处理固定格式文本数据的方法
2019/01/08 Python
详解Python文件修改的两种方式
2019/08/22 Python
C有"按引用传递"吗
2016/09/06 面试题
应用英语专业自荐信
2014/01/26 职场文书
自动化毕业生专业自荐书范文
2014/02/04 职场文书
法学求职信
2014/06/22 职场文书
计算机网络专业自荐信
2014/07/04 职场文书
村主任个人对照检查材料
2014/10/01 职场文书
公司人事任命通知
2015/04/20 职场文书