2

我是 Pandas 的新手,遇到了一些麻烦。基本上我正在尝试实现 SQL 查询

select count(fraud),state
from table
where fraud='REJECT'
group by state

我有以下python代码

df.groupby('State').size()

但是,这不仅限于欺诈=='REJECT'。我试过

fraud=df['fraud']=='REJECT'
fraud.groupby('State').size()

但是,这会为“状态”创建一个关键错误。所以我认为归结为我不知道如何在 Pandas 中实现 SQL 'where'。有人可以帮我吗?谢谢

4

1 回答 1

3

你可以这样做:

df[df['fraud'] == 'REJECT'].groupby('State').size()

例子:

>>> df = pd.DataFrame({'fraud':['REJECT', 'ACCEPT', 'REJECT', 'REJECT'], 'State':['AZ', 'AZ', 'TX', 'TX']})
>>> df[df['fraud'] == 'REJECT'].groupby('State').size()
State
AZ       1
TX       2
dtype: int64
于 2013-10-22T16:26:59.200 回答