【问题标题】:pandas filter group by熊猫过滤器分组
【发布时间】:2021-08-20 19:57:26
【问题描述】:

我想过滤此查询中的结果,因此如果可能在单行代码中,表中只有 >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

【问题讨论】:

  • table[table.values>1]?
  • 您能否更准确地说明您的问题?所有年龄值均 > 1,因此尚不完全清楚问题是什么或这是否是假设问题。

标签: 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']
                 })

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]

【讨论】:

    【解决方案2】:

    让我们链接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
    

    【讨论】:

      猜你喜欢
      • 2017-11-30
      • 2019-01-13
      • 2017-05-22
      • 1970-01-01
      • 2018-12-21
      • 2021-07-06
      • 2018-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多