Pandas:如何从列中选择特定值并像SQL中那样进行聚合?

2024-04-20 15:09:48 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一张饮料桌,我的问题是:

谁喝更多的啤酒和葡萄酒,美国还是西班牙

enter image description here

SQL查询将是

SELECT country, 
       sum(litres_consumed) AS litres_consumed
       FROM drinks_table
       WHERE country IN ('US', 'Spain')
       AND drinks IN ('beer', 'wine')
GROUP BY country

这会给我

enter image description here

我该如何在熊猫身上做到这一点

到目前为止我已经

df.groupby(['country', 'litres_consumed']).size()

……但这也给了我意大利的价值观,这是我不想要的

谢谢


Tags: infromsqlastablewhereselectcountry
1条回答
网友
1楼 · 发布于 2024-04-20 15:09:48

您可以通过两个简单的步骤来完成:

beer_wine = df[df.drinks.isin(['beer', 'wine'])

之后是

beer_wine.liters_consumed.groupby(beer_wine.country).sum()

或者,您可以聚合比您想要的多一点,但只能使用一行:

df.liters_consumed.groupby([df.country, df.drinks.isin(['beer', 'wine']]).sum()

相关问题 更多 >