熊猫数据帧混淆了 .count 和 .sum 之间的区别



在下面的数据帧中,通过电子邮件联系了亚当两次,一次通过电话联系。如果我使用 sum(( 来计算电子邮件的总使用量,我会得到正确的结果:2。 但是如果我使用 count((,亚当得到 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())

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

最新更新