gpt4 book ai didi

python - 需要计算数据框中的负值

转载 作者:太空狗 更新时间:2023-10-29 21:21:54 25 4
gpt4 key购买 nike

我需要数据框中负值的总数。我能够获取数组但无法找到 DataFrame。对于我正在使用下面代码的数组,任何人都可以建议我如何获取下面 DataFrame 的计数。

sum(n<0 for n in numbers)

下面是我的数据框,预期结果是 4

  a  b  c  d
-3 -2 -1 1
-2 2 3 4
4 5 7 8

最佳答案

您可以调用 .lt 将 df 与标量值进行比较,然后调用 sum 两次(这是因为它首先按行求和)

In [66]:
df.lt(0).sum()

Out[66]:
a 2
b 1
c 1
d 0
dtype: int64

再次调用sumSeries求和:

In [58]:
df.lt(0).sum().sum()

Out[58]:
4

您还可以将 bool df 转换为一维数组并调用 np.sum:

In [62]:
np.sum((df < 0).values.ravel())

Out[62]:
4

时间

对于 30K 行的 df:

In [70]:
%timeit sum(n < 0 for n in df.values.flatten())
%timeit df.lt(0).sum().sum()
%timeit np.sum((df < 0).values.ravel())

1 loops, best of 3: 405 ms per loop
100 loops, best of 3: 2.36 ms per loop
1000 loops, best of 3: 770 µs per loop

np 方法在这里轻松获胜~比循环方法快 525 倍,比纯 pandas 方法快 ~4 倍

关于python - 需要计算数据框中的负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36155942/

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