我有一个大致像这样的数据框
ID VAL
2 3
2 7
2 4
2 5
2 2
3 4
3 6
3 7
3 2
4 2
4 3
4 4
4 5
4 6
另一个大致像这样的数据框
ID VAL
2 5
3 7
我想对第二个数据帧中的每一行进行操作,该行将移至顶部。
ID VAL
2 5
2 3
2 7
2 4
2 2
3 7
3 4
3 6
3 2
4 2
4 3
4 4
4 5
4 6
看到(2,5)元组和(3,7)元组已经移到“ ID”开始的位置。
我目前的执行效率非常低。
任何帮助将不胜感激!
答案 0 :(得分:3)
我正在使用通过merge
创建的帮助键,然后我们sort_values
df1.merge(df2.assign(key=0),how='left').fillna({'key':1}).sort_values(['ID','key'])
# you can add .drop('key',1) at the end :-)
ID VAL key
3 2 5 0.0
0 2 3 1.0
1 2 7 1.0
2 2 4 1.0
4 2 2 1.0
7 3 7 0.0
5 3 4 1.0
6 3 6 1.0
8 3 2 1.0
9 4 2 1.0
10 4 3 1.0
11 4 4 1.0
12 4 5 1.0
13 4 6 1.0