假设我的df值为:
user_id sub_id score
39 16 1
39 4 1
40 1 3
40 2 3
40 3 3
和
user_id score
39 2
40 30
所以我想根据键 user_id 来划分列,这样我的结果应该是:
user_id sub_id score
39 16 0.5
39 4 0.5
40 1 0.1
40 2 0.1
40 3 0.1
我已经尝试了 div 操作,但它根据我的需要无法正常工作,它只是划分了第一个外观,并为我提供了 NAN 。
是否有任何直接的熊猫操作或我是否需要将两个df分组然后进行分割? 谢谢
答案 0 :(得分:1)
df1['score'] = df1['score'].div(df1['user_id'].map(df2.set_index('user_id')['score']))
print (df1)
user_id sub_id score
0 39 16 0.5
1 39 4 0.5
2 40 1 0.1
3 40 2 0.1
4 40 3 0.1
<强>详细强>:
print (df1['user_id'].map(df2.set_index('user_id')['score']))
0 2
1 2
2 30
3 30
4 30
Name: user_id, dtype: int64