反正有没有使用熊猫来计算每一列中某个值出现的次数?
data = pd.DataFrame({'userID':['Luis','Mike','Harvey'], 'category1':[真,假,真],'category2':[真,真,假], 'category3':[False,False,False]})
比方说,我想计算每个类别的“ True”布尔值的数量,以得到以下回报:
Category 1 -- Category 2 -- Category 3
2 2 0
我该怎么做?
答案 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}