Pandas中相当于SQL的where语句

3

我是新手,在使用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()

然而,这为“State”创建了一个关键错误。所以我认为问题归结于我不知道如何在Pandas中实现SQL的“where”。有人能帮我吗?谢谢。

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

当我打印它时,它只会输出 Series([], dtype: int64)。 - user1893354
我的错!实际上应该是“REJECT”而不是“REJECT”。这就是为什么它是空的。谢谢! - user1893354

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接