gpt4 book ai didi

python - Pandas :跨行的条件计数

转载 作者:太空狗 更新时间:2023-10-30 01:46:33 25 4
gpt4 key购买 nike

我有一个数据框,列有月份,行有各个部门。

                2013April  2013May  2013June
Dep1 0 10 15
Dep2 10 15 20

我想添加一个列来计算值大于 0 的月数。例如:

                2013April  2013May  2013June  Count>0 
Dep1 0 10 15 2
Dep2 10 15 20 3

此函数需要跨越的列数是可变的。我认为定义一个函数然后使用 .apply 是解决方案,但我似乎无法弄明白。

最佳答案

首先,选择你的列,cols

df[cols].apply(lambda s: (s > 0).sum(), axis=1)

这利用了 TrueFalse 在 python 中分别是 10 这一事实。

其实还有更好的办法:

(df[cols] > 0).sum(1)

因为这利用了 numpy 向量化

%timeit df.apply(lambda s: (s > 0).sum(), axis=1)
10 loops, best of 3: 141 ms per loop

%timeit (df > 0).sum(1)
1000 loops, best of 3: 319 µs per loop

关于python - Pandas :跨行的条件计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23663623/

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