Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫:如何从列中选择特定值并像SQL中那样进行聚合?_Python_Pandas - Fatal编程技术网

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

Python 熊猫:如何从列中选择特定值并像SQL中那样进行聚合?,python,pandas,Python,Pandas,假设我有这张桌子,我的问题是: 谁喝更多的啤酒和葡萄酒,美国还是西班牙 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 这会给我 我如何在熊猫身上做到这一点 到目

假设我有这张桌子,我的问题是:

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

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
这会给我

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

到目前为止我有

df.groupby(['country', 'litres_consumed']).size()
……但这也给了我意大利的价值观,这是我不想要的


谢谢

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

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()

您可以通过两个简单的步骤完成此操作:

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()

请以可以复制到Python脚本的方式添加数据帧请以可以复制到Python脚本的方式添加数据帧