【发布时间】:2019-10-03 09:20:53
【问题描述】:
我有一个熊猫数据框,格式如下:
user_id referral_code referred_by
1 A None
2 B A
3 C B
5 None None
6 E B
7 None none
....
我想要做的是为每个用户 ID 创建另一个列权重,这样它将包含他对其他人所做的引用总数以及他被引用的次数,即我必须检查是否用户 id 的 refer_code 存在于 refer_by 列中,并计算相同的频率,如果 refered_by 列有用户条目,则加 1。
预期输出是:
user_id referral_code referred_by weights
1 A None 1
2 B A 3
3 C B 1
5 None None None
6 E B 1
7 None none none
如果尝试过的方法是使用df.grouby 以及size 和count,但没有提供预期的输出。
【问题讨论】:
-
为什么
weights = 3换成B? (第 2 行) -
@AlexandreB。因为对于用户 id 2,他由 A 推荐。然后他自己推荐其他人(在本例中为 3 和 6)。所以1+2。
-
那么为什么第 1 行有 1 个?
-
因为 1 没有被任何人推荐,但他已经推荐了另一个(在这种情况下为 B)。所以0+1。
标签: python python-3.x pandas dataframe pandas-groupby