如何基于用作每列标准的数学运算从2列中提取数值范围?

A.ALT

使用基于python的PANDAS数据帧并基于上一个问题(如何从包含2个数字序列的两列中提取数字范围并从两列中打印范围(不同的增量值)?);有以下问题:有没有一种方法可以使用pandas数据框基于每列的不同数学运算来创建数字范围?

例如:

col1    col2   criteria-col1 diff. >2     criteria-col2 diff<=3                
1       23    abs(2-1)=1 ; no break     abs(27-23)=4;no break          
2       27    abs(4-2)=2 ; no break     abs(31-27)=4;no break
4       31    abs(6-4)=2;  no break     abs(35-31)=4;no break
6       35    abs(9-6)=3; break            abs(40-35)=5; no break but still break due to col1 criteria
9       40    abs(11-9)=2; no break    abs(45-40)=5;no break
11      45    abs(13-11)=2;no break    abs(49-45)=4;no break
13      49    abs (51-49)=2;no break   abs (51-49)=2; break also in column 1 due to critera in col2
15      51  

条件:创建数值范围,在该范围内序列(递增或递减)的值大于2

准则:创建数值范围,其中数值序列(升序或降序)的任意值<= 3都必须倾斜

预期结果应为根据上述标准序列断裂的范围:

col1_from  col1_to   col2_from  col2_to
        1        6          23       35
        9       13          40       49
       15       15          51       51
最大容量

数据:

In [10]: df
Out[10]:
   col1  col2
0     1    23
1     2    27
2     4    31
3     6    35
4     9    40
5    11    45
6    13    49
7    15    51

解决方案:

In [11]: df.groupby(df.diff().abs().eval("col1 > 2 or col2 <= 3").cumsum()) \
           .agg(['min','max'])
Out[11]:
  col1     col2
   min max  min max
0    1   6   23  35
1    9  13   40  49
2   15  15   51  51

解释:

In [12]: df.diff()
Out[12]:
   col1  col2
0   NaN   NaN
1   1.0   4.0
2   2.0   4.0
3   2.0   4.0
4   3.0   5.0
5   2.0   5.0
6   2.0   4.0
7   2.0   2.0

In [13]: df.diff().abs().eval("col1 > 2 or col2 <= 3")
Out[13]:
0    False
1    False
2    False
3    False
4     True
5    False
6    False
7     True
dtype: bool

In [14]: df.diff().abs().eval("col1 > 2 or col2 <= 3").cumsum()
Out[14]:
0    0
1    0
2    0
3    0
4    1
5    1
6    1
7    2
dtype: int32

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从2列中提取数值范围并将两列中的范围打印为元组?

来自分类Dev

如何从2列包含数字序列的列中提取数值范围并从两列中打印范围(不同的增量值)?

来自分类Dev

压缩数值的数学运算

来自分类Dev

压缩数值的数学运算

来自分类Dev

如何从xml文件中提取值并进行数学运算?

来自分类Dev

如何从函数值中提取特定列?

来自分类Dev

对来自2个数据框的匹配列执行数学运算:Python Pandas

来自分类Dev

如何从R中的csv文件读取一列时间以进行数学运算?

来自分类Dev

如何对特定列的所有行进行简单的数学运算?

来自分类Dev

是否需要值形式数学运算列?

来自分类Dev

基于最左端索引将相关数学运算应用于多索引数据框中的列

来自分类Dev

JavaScript和数学运算中的数值转换

来自分类Dev

如何使用Java 8列表中的某些具体内容进行一些数学运算?

来自分类Dev

如何在C#中对数据表的两列执行数学运算?

来自分类Dev

Excel如何使用行或列索引进行数学运算以创建单元格引用?

来自分类Dev

如何返回SQL数学运算的结果?

来自分类Dev

如何在使用python的文本文件的几列上基于数学运算保留单行

来自分类Dev

使用列值在CSV中按列执行数学运算

来自分类Dev

微风从DenseMatrix中提取基于列表的列

来自分类Dev

热学数学运算

来自分类Dev

Stringstream数学运算

来自分类Dev

整数的数学运算

来自分类Dev

评估数学运算

来自分类Dev

BigDecimal数学运算

来自分类Dev

哈希数学运算

来自分类Dev

我可以使用Excel的溢出范围运算符从2D动态数组中提取单个1D列吗?

来自分类Dev

追加到下一行的数学运算的三列之间的结果

来自分类Dev

在插入或更新期间对列进行Postgres和数学运算

来自分类Dev

Excel VBA在列中查找值,然后进行数学运算

Related 相关文章

  1. 1

    如何从2列中提取数值范围并将两列中的范围打印为元组?

  2. 2

    如何从2列包含数字序列的列中提取数值范围并从两列中打印范围(不同的增量值)?

  3. 3

    压缩数值的数学运算

  4. 4

    压缩数值的数学运算

  5. 5

    如何从xml文件中提取值并进行数学运算?

  6. 6

    如何从函数值中提取特定列?

  7. 7

    对来自2个数据框的匹配列执行数学运算:Python Pandas

  8. 8

    如何从R中的csv文件读取一列时间以进行数学运算?

  9. 9

    如何对特定列的所有行进行简单的数学运算?

  10. 10

    是否需要值形式数学运算列?

  11. 11

    基于最左端索引将相关数学运算应用于多索引数据框中的列

  12. 12

    JavaScript和数学运算中的数值转换

  13. 13

    如何使用Java 8列表中的某些具体内容进行一些数学运算?

  14. 14

    如何在C#中对数据表的两列执行数学运算?

  15. 15

    Excel如何使用行或列索引进行数学运算以创建单元格引用?

  16. 16

    如何返回SQL数学运算的结果?

  17. 17

    如何在使用python的文本文件的几列上基于数学运算保留单行

  18. 18

    使用列值在CSV中按列执行数学运算

  19. 19

    微风从DenseMatrix中提取基于列表的列

  20. 20

    热学数学运算

  21. 21

    Stringstream数学运算

  22. 22

    整数的数学运算

  23. 23

    评估数学运算

  24. 24

    BigDecimal数学运算

  25. 25

    哈希数学运算

  26. 26

    我可以使用Excel的溢出范围运算符从2D动态数组中提取单个1D列吗?

  27. 27

    追加到下一行的数学运算的三列之间的结果

  28. 28

    在插入或更新期间对列进行Postgres和数学运算

  29. 29

    Excel VBA在列中查找值,然后进行数学运算

热门标签

归档