比较Pandas中多列的值,并计算最后一列的值高于其他列的示例

idfiyjo8  于 2023-01-15  发布在  其他
关注(0)|答案(2)|浏览(103)

我有一个DataFrame,看起来像这样:
Image of DataFrame
我想做的是比较每一行的所有四列(A、B、C和D)中的值,并计算每一行中D的值小于A、B或C的次数,然后将其添加到'Count'列中。因此,例如,第二行、第三行的'Count'应为1,最后一行的'Count'应为2。
先谢谢你!

fhity93d

fhity93d1#

可以使用gtsum方法沿着轴对操作进行矢量化:

df['Count'] = df[['A', 'B', 'C']].gt(df['D'], axis=0).sum(axis=1)
print(df)

# Output
   A  B  C  D  Count
0  1  2  3  4      0
1  4  3  2  1      3
2  2  1  4  3      1
6ovsh4lw

6ovsh4lw2#

今后,请不要将数据作为图像发布。
使用lambda函数,在所有列之间进行比较,然后对所有列求和。

data = {'A': [1,47,4316,8511],
        'B': [4,1,3,4],
        'C': [2,7,9,1],
        'D': [32,17,1,0]
       }

df = pd.DataFrame(data)

df['Count'] = df.apply(lambda x: x['D'] < x, axis=1).sum(axis=1)

输出:

A  B  C   D  Count
0     1  4  2  32      0
1    47  1  7  17      1
2  4316  3  9   1      3
3  8511  4  1   0      3

相关问题