【问题标题】:How to count the number of times a value occurs in each column (per column), using Pandas?如何使用 Pandas 计算每列(每列)中值出现的次数?
【发布时间】:2019-03-08 08:37:06
【问题描述】:

到底有没有用pandas来统计每列某个值出现的次数?

data = pd.DataFrame({'userID':['Luis', 'Mike', 'Harvey'], 'category1':[真,假,真],'category2':[真,真,假], 'category3':[假,假,假]})

假设我想计算每个类别的“真”布尔值的数量以获得以下回报:

 Category 1  -- Category 2 -- Category 3
      2             2              0

我该怎么做呢?

【问题讨论】:

    标签: pandas pandas-groupby


    【解决方案1】:

    您可以通过布尔掩码的sum 计算出现次数 - True 值是类似1s 的过程:

    #count all columns without first to Series
    print (data.iloc[:, 1:].sum().astype(int))
    
    category1    2
    category2    2
    category3    0
    dtype: int32
    
    #or to one row DataFrame
    df = data.iloc[:, 1:].sum().astype(int).to_frame().T
    

    使用eq (==) 的通用解决方案:

    val = True
    df = data.iloc[:, 1:].eq(val).sum().astype(int).to_frame().T
    print (df)
    
       category1  category2  category3
    0          2          2          0
    

    【讨论】:

    • 完美,谢谢!事实上,第一种方法最好让它向下列出 - 干杯!
    • @halfer - 谢谢,2 个错别字:)
    【解决方案2】:

    a = dict(df.category1.value_counts()) 这会给你像 {True : 20, False : 15}

    这样的输出

    【讨论】:

      猜你喜欢
      • 2016-06-02
      • 1970-01-01
      • 2023-02-06
      • 2018-07-17
      • 1970-01-01
      • 2016-10-23
      • 2019-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多