pandas dataframe混淆了.count和.sum之间的区别

时间:2017-07-02 22:05:38

标签: python pandas

在下面的数据框中,adam通过电子邮件和电话联系了两次。如果我使用sum()来计算电子邮件总使用次数,我会得到正确的结果:2。 但如果我使用count(),adam得到3。 为什么会这样? .count()不区分真假布尔值吗?

df = pd.DataFrame ({'Name':['adam','ben','adam','adam','ben'], 'Type' ['Email', 'Phone', 'Email','Phone','Phone']}, index =[0,1,2,3,4])

df.groupby('Name')['Type'].apply(lambda x: x.isin(['Email']).sum())
df.groupby('Name')['Type'].apply(lambda x: x.isin(['Email']).count())

1 个答案:

答案 0 :(得分:4)

count方法的技术定义是计算非缺失值。由于所有值都是非缺失的,因此只返回每个组的行数。