首页 > 解决方案 > 如何比较2列值并获取python中匹配对的计数

问题描述

这是 DataFrame 的标头

user_id       timestamp                group         landing_page                 converted

0   851104  2017-01-21 22:11:48.556739    control         old_page                       0
1   804228  2017-01-12 08:01:45.159739    control         old_page                       0
2   661590  2017-01-11 16:55:06.154213    treatment       new_page                       0
3   853541  2017-01-08 18:28:03.143765    treatment       new_page                       0
4   864975  2017-01-21 01:52:26.210827    control         old_page                       1

我的问题是“new_page 和治疗不匹配的次数是多少?我使用了以下内容:

df[(df["group"]!= "treatment") & (df["landing_page"]=="new_page")]
df[(df["group"]== "treatment") & (df["landing_page"]!="new_page")]

但它分别计算它们有没有更好的方法呢?或者如何获得不匹配对的数量?

标签: pythonpandas

解决方案


怎么样:

df.groupby(['group','landing_page'])['user_id'].count()

这会给你:

group      landing_page
control    old_page        3
treatment  new_page        2

如果你直接想要这个号码,你可以这样做:

pd.DataFrame(df.groupby(['group','landing_page'])['user_id'].count()).sum()

打印:

user_id    5

推荐阅读