编程语言
首页 > 编程语言> > python – 如何查找多列的最大连续数?

python – 如何查找多列的最大连续数?

作者:互联网

我需要确定满足多列特定条件的最大连续值.

如果我的df是:

A    B    C    D    E
26   24   21   23   24
26   23   22   15   23 
24   19   17   11   15     
27   22   28   24   24 
26   27   30   23   11 
26   26   29   27   29

我想知道每列超过25的最大连续次数.所以输出将是:

A 3
B 2
C 3
D 1
E 1

使用以下代码,我可以一次获得一列的结果;有没有办法像上面那样创建一个表而不是重复每一列(我总共有40多列).

df.A.isnull().astype(int).groupby(df.A.notnull().astype(int).cumsum()).sum().max()

提前致谢.

解决方法:

这是你想要的吗 ?熊猫的做法(PS:没想到我可以让它成为一线LOL)

(df>25).apply(lambda x :x.groupby(x.diff().ne(0).cumsum()).cumcount()+1).mask(df<25).max()
Out[320]: 
A    3.0
B    2.0
C    3.0
D    1.0
E    1.0
dtype: float64

标签:python,pandas,pandas-groupby,cumsum
来源: https://codeday.me/bug/20190608/1195907.html