gpt4 book ai didi

python-3.x - 计算低于 0 的 Pandas 数据框中的条目数

转载 作者:行者123 更新时间:2023-12-03 23:54:04 27 4
gpt4 key购买 nike

我有一个包含许多列的 pandas 数据框,其中一些是数字列,另一些是分类列。

我想计算 pandas 数据框中负条目的数量。一种方法是找出哪些列是数字,对这些列进行子集化,然后使用简单的语法来计算具有负值的条目数,例如(df < 0).sum()

相反,我尝试使用包含条件的 apply 和 lambda 函数的语法,但我收到一条消息,提示我的语法有误。您能否向我解释一下为什么以及如何实现这个想法?

data.apply(lambda x: (if (x.dtype == 'int16' or x.dtype == 'float16'): (x<0).sum())).sum()
File "<ipython-input-75-f329bf4e8cdd>", line 1
data.apply(lambda x: (if (x.dtype == 'int16' or x.dtype == 'float16'): (x<0).sum())).sum()
^
SyntaxError: invalid syntax

最佳答案

您可以在此处使用三元运算符:

data.apply(lambda x: <b>(x < 0).sum() if (x.dtype in ('int16', 'float16')) else 0</b>).sum()

因此,对于非数值,我们返回 0((ℕ, +, 0) 幺半群的中性元素)。

请注意,除了 int16float16 之外,还有更多的数值类型,您可能需要使用 np.issubdtype(..., np.number) 这里:

import numpy as np

data.apply(lambda x: (x < 0).sum() if <b>np.issubdtype(x.dtype, np.number)</b> else 0).sum()

关于python-3.x - 计算低于 0 的 Pandas 数据框中的条目数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58891182/

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