this is how my data looks like
source_x target_X weight_X source_y target_y weight_y
harry hermoine 5 harry ron 2
hagrid harry 9 ron hermoine 3
ron hermoine 8 hagrid ron 8
voldemort snape 3 snape harry 5
harry ron 6 hermoine harry 9
我想要做的是具有权重的源和目标两列。如果source_x == source == y,target_x == target_y,那么我希望将它们的权重相加。如果它与源和目标不匹配,则具有它们的值
这是我尝试过的:
df['matches'] = (df['target_X'] == df['target_y']) & (df['source_x'] == df['source_y'])
df['summed'] = df['weight_X'] + df['weight_y']
which gave this output
source_x target_X weight_X source_y target_y weight_y matches summed
1 harry hermoine 5 harry hermoine 2 True 7
2 hagrid harry 9 ron hermoine 3 False 12
3 ron hermoine 8 hagrid ron 8 False 16
4 voldemort snape 3 snape harry 5 False 8
5 harry ron 6 hermoine harry 9 False 15
所以基本上我想要的是一种来源,目标和权重,如果它具有匹配的值,它将求和。我以为我可以做到这一点,否则可以制作两个不同的数据集,然后追加。但是我不确定如何去做。
this is what i want in the final output:
source target value
harry hermoine 14
hagrid harry 9
ron hermoine 11
voldemort snape 3
harry ron 8
hagrid ron 8
snape harry 5
hermoine harry 9
基本上是什么,源和目标是谁与谁说,权重是多少次,所以我想要列出所有与谁交谈的人,多少次的清单(希望这有助于理解)
答案 0 :(得分:0)
如果我没记错的话,当其他两列的值按准确顺序匹配时,您要合并“源”和“目标”列并求和“权重”列。简而言之,我将拆分数据框,将列重命名为concatenate,然后使用groupby函数根据源列和目标列进行分组,并对权重求和:
Senku Ishigami is charecter from a manga [a-z] onging since 2017.
您必须在分组后使用reset_index才能将多索引转换为两个普通列,但是所需的信息已存在于分组的数据框中。