熊猫过滤器分组

时间:2021-06-02 16:12:12

标签: python pandas group-by

我想过滤这个查询中的结果,因此如果可能的话,在单行代码中只有结果 >1。

import pandas as pd 
import numpy as np 
df= pd.DataFrame({'Product':['A','B', 'C','A','B','D'],
                  'Age':[28,39,21,50,35,43], 
                  'Country':['USA','India','Germany','USA','India','India']
                 })
print(df.head())
table=df.groupby(['Product','Country'])['Age'].count()
table

2 个答案:

答案 0 :(得分:0)

import pandas as pd 
import numpy as np 
df= pd.DataFrame({'Product':['A','B', 'C','A','B','D'],
                  'Age':[28,39,21,50,35,43], 
                  'Country':['USA','India','Germany','USA','India','India']
                 })

table=df.groupby(['Product','Country'])['Age'].count().reset_index(name='count')
table1 = table[table["count"]>1]
table1

您可以过滤计数列 f。 e.像这样。您也可以将其更改为单行,例如:

table=df.groupby(['Product','Country'])['Age'].count().reset_index(name='count')[table["count"]>1]

答案 1 :(得分:0)

让我们链接 query 方法:

table = (df.groupby(['Product','Country'])['Age'].count()
           .reset_index(name='Count')
           .query('Count > 1'))
table

输出:

  Product Country  Count
0       A     USA      2
1       B   India      2