我有一个熊猫数据框,格式如下:
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的引用代码是否存在于refered\u by列中,并计算相同的频率,如果存在,还添加1refered\u by列有一个用户条目
预期输出为:
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 = df.referred_by.value_counts()['myword']+1
,然后将它添加到列权重中的df中您想构建一个新的条件列。如果条件足够简单,可以使用
np.where
来实现。我建议你看看这个这里很复杂,应该有一个
np.where
的解决方案,但不是很明显。在这种情况下,可以使用apply
方法。它为您提供了一个机会,让您可以根据需要编写复杂的条件。使用apply
比np.where
效率低,因为您需要一个python
抽象。取决于数据集和条件的复杂性这里有一个
apply
的例子:希望对你有帮助
相关问题 更多 >
编程相关推荐