TRUE_MAX栏是如何计算的?

输入:

import pandas as pd
A=[28,30,15,25,24,13,31,19,20,11,19,21]
COND=[False,True,True,True,False,False,True,True,True,False,True,True]
df=pd.DataFrame({'A':A,'COND':COND})

预期yields

    A   COND    TRUE_MAX
0   28  FALSE   
1   30  TRUE    30
2   15  TRUE    30
3   25  TRUE    30
4   24  FALSE   
5   13  FALSE   
6   31  TRUE    31
7   19  TRUE    31
8   20  TRUE    31
9   11  FALSE   
10  19  TRUE    21
11  21  TRUE    21  

推荐答案

您可以try 执行以下操作:

import pandas as pd
A=[28,30,15,25,24,13,31,19,20,11,19,21]
COND=[False,True,True,True,False,False,True,True,True,False,True,True]
df=pd.DataFrame({'A':A,'COND':COND})

# splitting your data in groups: 1 through to 6
sequences = (df.COND != df.COND.shift()).cumsum()

# use only groups where df.COND == True and for each group get max in df.A
max_vals = df[df.COND].groupby(sequences)['A'].transform(max)

# assign to orig df
df['TRUE_MAX'] = max_vals
print(df)

     A   COND  TRUE_MAX
0   28  False       NaN
1   30   True      30.0
2   15   True      30.0
3   25   True      30.0
4   24  False       NaN
5   13  False       NaN
6   31   True      31.0
7   19   True      31.0
8   20   True      31.0
9   11  False       NaN
10  19   True      21.0
11  21   True      21.0

Python相关问答推荐

在不同的帧B中判断帧A中的子字符串,每个帧的大小不同

如何在Great Table中处理inf和nans

在用于Python的Bokeh包中设置按钮的样式

将链中的矩阵乘法应用于多组值

如何在Python 3.9.6和MacOS Sonoma 14.3.1下安装Pyregion

从列表中分离数据的最佳方式

将数据从一个单元格保存到Jupyter笔记本中的下一个单元格

有没有一种方法可以根据不同索引集的数组从2D数组的对称子矩阵高效地构造3D数组?

如何从具有完整层次数据的Pandas框架生成图形?

S最大值除以最小值,然后减1的结果是什么?

颂歌中的线性插值法(盖柯)

捕获脚本和退出代码的多行输出

如何在函数签名中输入数据类字段

.yml不会在专用环境中安装来自.requirements.txt的软件包

获取Python中的层次 struct 数据

向量化数据帧中的折叠过程

对每列给定行进行块切片

在所有任务完成之前完成Python事件循环

基于行值迭代/填充列

Lxml xPASS在XML中的第一个标记下面找不到标记