我读过多个问题,但没有看到解决办法或遗漏了什么东西。
我有一份数据
Author_id Article_id Rank
100 10 1
101 10 2
102 10 3
100 11 1
105 11 2
106 11 3预期产出:
Author_id1 Author_id2 Article_id Rank
100 101 10 1
100 102 10 1
100 105 11 1
100 106 11 1
101 100 10 2
101 102 10 2
102 100 10 3
102 101 10 3
105 100 11 2
105 106 11 2
106 100 11 3
106 105 11 3如果我对所需数据集的理解不正确,请建议如何重新构造此数据集。谢谢!
发布于 2022-02-07 17:58:30
如果DataFrame不在['Author_id', 'Article_id']上复制,则可以在文章中进行自合并,并筛选出与它们合并的行。
df1 = (df.merge(df.drop(columns='Rank'), on='Article_id', suffixes = ['1', '2'])
.query('Author_id1 != Author_id2')
.sort_values(['Author_id1', 'Rank'])
.reset_index(drop=True)) Author_id1 Article_id Rank Author_id2
0 100 10 1 101
1 100 10 1 102
2 100 11 1 105
3 100 11 1 106
4 101 10 2 100
5 101 10 2 102
6 102 10 3 100
7 102 10 3 101
8 105 11 2 100
9 105 11 2 106
10 106 11 3 100
11 106 11 3 105https://stackoverflow.com/questions/71023122
复制相似问题