如何使用熊猫计算每列(每列)中一个值出现的次数?

时间:2018-10-03 07:07:59

标签: pandas pandas-groupby

反正有没有使用熊猫来计算每一列中某个值出现的次数?

  

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

比方说,我想计算每个类别的“ True”布尔值的数量,以得到以下回报:

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

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以通过sum的布尔掩码来计数发生次数-True的值类似于1 s的过程:

#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

答案 1 :(得分:0)

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

的输出