热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

检查当前行中的所有列值是否小于pandasdataframe中的上一行

如何解决《检查当前行中的所有列值是否小于pandasdataframe中的上一行》经验,为你挑选了1个好方法。

有没有办法检查当前行中的所有列值是否小于pandas数据帧中前一行中的相应列值(整个数据帧)并创建一个值为1或0的新列?



1> piRSquared..:

考虑数据帧 df

np.random.seed([3,1415])
df = pd.DataFrame(np.random.rand(10, 4), columns=list('ABCD'))

          A         B         C         D
0  0.444939  0.407554  0.460148  0.465239
1  0.462691  0.016545  0.850445  0.817744
2  0.777962  0.757983  0.934829  0.831104
3  0.879891  0.926879  0.721535  0.117642
4  0.145906  0.199844  0.437564  0.100702
5  0.278735  0.609862  0.085823  0.836997
6  0.739635  0.866059  0.691271  0.377185
7  0.225146  0.435280  0.700900  0.700946
8  0.796487  0.018688  0.700566  0.900749
9  0.764869  0.253200  0.548054  0.778883

选项1
shift

df.assign(New=(df 


选项2 与选项1相同的概念
numpy

v = df.values
df.assign(New=np.append(False, (v[1:] 

选项3 使用比较一行与下一个,看看它是否小于零.然后用它来确定它是否为整行.
diff
diffallTrue

df.assign(New=df.diff().lt(0).all(1).astype(int))

          A         B         C         D  New
0  0.444939  0.407554  0.460148  0.465239    0
1  0.462691  0.016545  0.850445  0.817744    0
2  0.777962  0.757983  0.934829  0.831104    0
3  0.879891  0.926879  0.721535  0.117642    0
4  0.145906  0.199844  0.437564  0.100702    1
5  0.278735  0.609862  0.085823  0.836997    0
6  0.739635  0.866059  0.691271  0.377185    0
7  0.225146  0.435280  0.700900  0.700946    0
8  0.796487  0.018688  0.700566  0.900749    0
9  0.764869  0.253200  0.548054  0.778883    0

定时

%timeit df.assign(New=df.diff().lt(0).all(1).astype(int))
%timeit df.assign(New=(df 


如何diff工作

检查当前行中的所有列值是否小于上一行中的相应列值

这是促使我使用的原因diff. pandas.DataFrame.diff默认情况下,为每列计算diff数组.意思是,对于每一行,我们都有该行相对于前一行的差异.对于OP所呈现的条件True,我们需要这个差异小于零.

df.diff()

          A         B         C         D
0       NaN       NaN       NaN       NaN
1  0.017752 -0.391009  0.390297  0.352505
2  0.315271  0.741438  0.084384  0.013360
3  0.101929  0.168895 -0.213294 -0.713463
4 -0.733985 -0.727035 -0.283971 -0.016940
5  0.132829  0.410018 -0.351741  0.736296
6  0.460900  0.256197  0.605448 -0.459812
7 -0.514489 -0.430779  0.009629  0.323761
8  0.571340 -0.416592 -0.000334  0.199803
9 -0.031618  0.234512 -0.152512 -0.121866

然后

df.diff() <0

       A      B      C      D
0  False  False  False  False
1  False   True  False  False
2  False  False  False  False
3  False  False   True   True
4   True   True   True   True
5  False  False   True  False
6  False  False  False   True
7   True   True  False  False
8  False   True   True  False
9   True  False   True   True

然后

(df.diff() <0).all(1)

0    False
1    False
2    False
3    False
4     True
5    False
6    False
7    False
8    False
9    False
dtype: bool


推荐阅读
  • 假设我有两个数组A和B,其中A和B都是mxn.我现在的目标是,对于A和B的每一行,找到我应该在B的相应行中插入A的第i行元素的位置.也就是说,我希望将np.digitize或np. ... [详细]
  • 本文介绍了利用ARMA模型对平稳非白噪声序列进行建模的步骤及代码实现。首先对观察值序列进行样本自相关系数和样本偏自相关系数的计算,然后根据这些系数的性质选择适当的ARMA模型进行拟合,并估计模型中的位置参数。接着进行模型的有效性检验,如果不通过则重新选择模型再拟合,如果通过则进行模型优化。最后利用拟合模型预测序列的未来走势。文章还介绍了绘制时序图、平稳性检验、白噪声检验、确定ARMA阶数和预测未来走势的代码实现。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • Python教学练习二Python1-12练习二一、判断季节用户输入月份,判断这个月是哪个季节?3,4,5月----春 ... [详细]
  • 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList优于LinkedList,因为Ar ... [详细]
  • 很多时候在注册一些比较重要的帐号,或者使用一些比较重要的接口的时候,需要使用到随机字符串,为了方便,我们设计这个脚本需要注意 ... [详细]
  • java 单链表和双_Java链表,单链表和双链表
    Java-链表1、什么是链表?2、链表的特点是什么?3、链表的实现原理?4、如何自己写出一个链表?1、什么是链表࿱ ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • #define_CRT_SECURE_NO_WARNINGS#includelist.h#includevoidSListInit(PNode*pHead ... [详细]
  • 花瓣|目标值_Compose 动画边学边做夏日彩虹
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Compose动画边学边做-夏日彩虹相关的知识,希望对你有一定的参考价值。引言Comp ... [详细]
  • 一、死锁现象与递归锁进程也是有死锁的所谓死锁:是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作 ... [详细]
author-avatar
-Rucas-
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有