【问题标题】:get a frequency count of two columns based on another in pandas dataframe [duplicate]获取基于熊猫数据框中另一列的两列的频率计数[重复]
【发布时间】:2019-08-02 12:34:31
【问题描述】:

我目前有以下:

   Business Name   Violation    Business License #   
   Place 1         Crime 1      111
   Place 1         Crime 2      222
   Place 2         Crime 3      333
   Place 3         Crime 4      444
   Place 3         Crime 5      444

我正在尝试获取以下内容:

Business Name   Violations    Business License #'s
  Place 1             2                 2
  Place 2             1                 1
  Place 3             2                 1

基本上,我只需要根据企业名称获取两个不同列的计数。这是到目前为止我知道是错误的代码:

df.groupby(['Business Name','Business License #']).size()

任何帮助将不胜感激!

【问题讨论】:

    标签: python python-3.x pandas pandas-groupby


    【解决方案1】:

    Chris 是对的,nunique 会完成这项工作,但之后您需要重置索引:

    df.groupby('Business Name')[['Business Violation', 'Business License']].nunique().reset_index()
    
           Business Name  Business Violation  Business License
    0        Place 1                   2                 2
    1        Place 2                   1                 1
    2        Place 3                   2                 1
    

    【讨论】:

      【解决方案2】:

      使用pandas.DataFrame.groupby.nunique:

      df.groupby('Business Name')[['Violation','Business License #']].nunique()
                     Violation  Business License #
      Business Name                               
      Place 1                2                   2
      Place 2                1                   1
      Place 3                2                   1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-06
        • 2020-11-18
        • 2016-01-21
        相关资源
        最近更新 更多