gpt4 book ai didi

python - Pandas 计数跨行的值大于不同列中的另一个值

转载 作者:行者123 更新时间:2023-11-28 21:37:16 24 4
gpt4 key购买 nike

我有一个像这样的 Pandas 数据框:

        X   a   b   c
1 1 0 2
5 4 7 3
6 7 8 9

我想打印一个名为“count”的列,它输出的值的数量大于第一列中的值(在我的例子中是“x”)。输出应如下所示:

X   a   b   c   Count
1 1 0 2 2
5 4 7 3 1
6 7 8 9 3

我想避免使用“lambda 函数”或“for”循环或任何类型的循环技术,因为我的数据框有大量行。我试过类似的东西,但我无法得到我想要的东西。

df['count']=df [ df.iloc [:,1:] > df.iloc [:,0] ].count(axis=1)

我也试过

numpy.where()

也没有任何运气。所以任何帮助将不胜感激。我也有 nan 作为我的数据框的一部分。所以我想在计算这些值时忽略它。

提前感谢您的帮助!

最佳答案

你可以使用 ge(>=) 和 sum

df.iloc[:,1:].ge(df.iloc[:,0],axis = 0).sum(axis = 1)
Out[784]:
0 2
1 1
2 3
dtype: int64

分配回来后

df['Count']=df.iloc[:,1:].ge(df.iloc [:,0],axis=0).sum(axis=1)
df
Out[786]:
X a b c Count
0 1 1 0 2 2
1 5 4 7 3 1
2 6 7 8 9 3

关于python - Pandas 计数跨行的值大于不同列中的另一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49932120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com