此问题在此处已有答案:
Groupby two columns ignoring order of pairs(2个答案)
Count unique combinations regardless of column order(2个答案)
昨天关门了。
我使用的 Dataframe 结构如下:
| Sender | recipient | n_pass | other |
--| ------ | --------- | ------ | ------- |
0 | Emma | Lisa | 1 | other_a |
1 | Lisa | Emma | 1 | other_b |
2 | Anna | Lisa | 1 | other_c |
3 | Lisa | Anna | 1 | other_d |
4 | Emma | Jade | 1 | other_e |
5 | Lisa | Jade | 1 | other_f |
6 | Jade | Lisa | 1 | other_g |
我的目标是合并每对参与者的行,不管他们是发送者还是接收者,或者如果没有其他组合就不合并。
输出应如下所示:
| Player_1 | Player_2 | n_pass | other |
--| -------- | -------- | ------ | ------- |
0 | Emma | Lisa | 2 | other_a |
1 | Anna | Lisa | 2 | other_c |
2 | Emma | Jade | 1 | other_e |
3 | Lisa | Jade | 2 | other_f |
注意事项:
- 对n_pass求和并删除剩余行就足够了,因为还有其他列不需要合并或更改
- 为了简单起见,我在本例中使用了名称,但真实的情况是每个玩家的唯一数字ID
我正在寻找比我目前使用嵌套循环的解决方案更有效的方法。
1条答案
按热度按时间qmb5sa221#
示例
代码
make dataframe已对发件人和收件人进行排序
df1
通过
df1
和布尔索引来生成条件实验结果: