如何在熊猫中优化此类搜索和替换

时间:2019-03-20 03:00:19

标签: python pandas

我有一个大致像这样的数据框

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”开始的位置。

我目前的执行效率非常低。

任何帮助将不胜感激!

1 个答案:

答案 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