将 pandas 数据框中多列的最大值减少一

问题描述 投票:0回答:1

这里有点小众,我无法在任何地方找到等效的代码。我只是想找到某些列(不是所有列)中的最大值并将该最大值减一。它将是单行,而不是具有最大值的多行。

假设我有一个包含以下列的表格。我想将 A、B 和 D 列中的最大值减一:

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

...生成一个表格,其中 A、B 和 D 列中的最大值减一。

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

(我实际上正在处理一个大约 40 行的表,其中大约 8 行我想将其中的最大值减少 1)。谢谢。

python pandas dataframe max
1个回答
0
投票

用途:

cols = ['A','B','D']

df[df[cols].eq(df[cols].max())] -= 1 

print (df)
   A  B  C  D
0  3  2  5  5
1  4  8  6  7
2  6  0  7  8
3  1  3  9  1
© www.soinside.com 2019 - 2024. All rights reserved.