在下面的数据框中,adam 两次通过电子邮件联系,一次通过电话联系。如果我使用 sum() 来计算电子邮件的总使用量,我会得到正确的结果:2。 但是如果我使用 count(),adam 得到 3。 为什么会这样? .count() 不区分 True 和 False bool 值吗?
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
的技术定义方法是统计非缺失值。由于您的所有值都没有缺失,因此它只返回每个组的行数。
关于python - .count 和 .sum 之间的 pandas dataframe 令人困惑的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44875624/