我试图根据 2 列的 if 条件求和一列的值,但出现错误
AttributeError: 'numpy.int64'
这是我的对象没有属性
loc
df3 = df3.loc[(df3['Feature Name'] == 'GI - MIPS PI - Filter Scorecard Data Panel - Measures(All) - PI_HIE_1: Support Electronic Referral Loops by Sending Health Information Measure Checkbox',) & (df3['Practice Management Software'] == 'Intergy'), 'Events'].sum()
df3
我期望它返回事件总和列的值
错误发生的原因是你正试图在一个已经是数字(你试图求和操作的结果)的 NumPy
int64
对象上使用
.loc
。
.loc
用于 Pandas DataFrames 来访问基于标签的位置,而不是单个数字。
你的代码实际上几乎可以工作了,你只需要稍微调整一下:
df3 = df3[(df3['Feature Name'] == 'GI - MIPS PI - Filter Scorecard Data Panel - Measures(All) - PI_HIE_1: Support Electronic Referral Loops by Sending Health Information Measure Checkbox') & (df3['Practice Management Software'] == 'Intergy')]['Events'].sum()
df3
以下是对更改的说明:
-
直接过滤和求和:
我们不需要单独使用
.loc
。我们可以直接在 DataFrame 上应用条件来过滤行,然后选择“Events”列并对其求和。
这段修改后的代码首先应用你的条件过滤 DataFrame,然后选择“Events”列,最后对选定列中过滤后的行求和。这应该可以给你所需的“Events”列的总和。
标签:python,pandas From: 78815083