【问题标题】:Counting the frequency in a column for a multi-index pivot table using Python使用 Python 计算多索引数据透视表的列中的频率
【发布时间】:2020-10-19 23:55:05
【问题描述】:

我的数据如下所示:

Company     Product_ID     Sl_Num
A           FGH123         5CG6501035
A           FGH123         5CG6501036
A           FGH123         5CG6501037
A           IJK124         5CG6501038
A           IJK124         5CG6501039
A           LMN124         5CG6501040
B           IJK124         5CG6501041
B           IJK124         5CG6501042
B           IJK124         5CG6501043
B           LMN124         5CG6501044
C           LMN124         5CG6501045
C           RST127         5CG6501046
C           RST127         5CG6501047
D           OPQ126         5CG6501048
E           RST127         5CG6501049

我希望它看起来像下面这样:

Company     Product_ID     Count
A           FGH123         3
A           IJK124         2
A           LMN124         1
B           IJK124         3
B           LMN124         1
C           LMN124         1
C           RST127         2
D           OPQ126         1
E           RST127         1

我的代码是:

mypivot = pd.pivot_table(df_ProdImp, index=["Company", "Product_ID"], values = ["Product_ID"], aggfunc="count")

但它一直给我一个错误说明: ValueError: Grouper for 'Product_ID' not 1-dimensional

请建议我如何更改代码以获得所需的结果。

【问题讨论】:

  • 你需要 groupby 来做这个,df.groupby(['Company', 'Product_ID']).size().reset_index(name="Count")
  • 效果很好!谢谢@Sushanth!

标签: python python-3.x pandas pivot-table


【解决方案1】:

可以这样写

mypivot = pd.DataFrame(df_ProdImp.groupby('Company')['Product_ID'].value_counts())

【讨论】:

    【解决方案2】:

    下面的代码应该可以工作。它使用 groupby 而不是数据透视表。

    df.groupby(['Company','Product_ID'])['Sl_Num'].count().reset_index()
    

    【讨论】:

      【解决方案3】:

      你也可以试试这个:

      df = df.groupby(by=['Company', 'Product_ID'], as_index=False).count().rename(columns={'Sl_Num': 'Count'})
      print(df)
      
        Company Product_ID  Count
      0       A     FGH123       3
      1       A     IJK124       2
      2       A     LMN124       1
      3       B     IJK124       3
      4       B     LMN124       1
      5       C     LMN124       1
      6       C     RST127       2
      7       D     OPQ126       1
      8       E     RST127       1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-10
        • 2021-02-12
        • 1970-01-01
        • 1970-01-01
        • 2020-02-08
        • 2020-10-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多