как сохранить правильный порядок строк pandas

Код:

import pandas as pd

df1 = pd.DataFrame({ 'Name' : ['LingS', 'DoammB', 'VoammE', 'CommI'], 
                     'ID' : ['DOAM4', 'LOAM4', 'COAM2', 'VOAM1']}) 
df2 = pd.DataFrame({ 'ID' : ['DOAM4', 'LOAM4', 'COAM2', 'VOAM1']})

df3 = pd.merge(df1, df2, on='ID',  sort=False)

Есть два датафрейма, нужно сделать что-то типа VLOOKUP функции, только на пайтоне. В результате я хочу получить:

Names IDs
DoammB DOAM4
LingS LOAM4
CommI COAM2
VoammE VOAM1

Проблема в том, что пандас не сохраняет порядок значений и изменяет его на алфавитный. Я думал, что все будет работать когда я добавлю sort=False, но никаких изминений не произошло. Может кто-то знает способы получше?


Ответы (2 шт):

Автор решения: gfd2

Мой костыльный ответ, который не совсем подходит к таблице автора. Но возможно чем то поможет :)

import pandas as pd

df1 = pd.DataFrame({ 'Name': ['LingS', 'DoammB', 'VoammE', 'CommI']}) 
df2 = pd.DataFrame({ 'ID': ['DOAM4', 'LOAM4', 'COAM2', 'VOAM1']})

df1.sort_values(by=['Name'], inplace=True)
df2.sort_values(by=['ID'], inplace=True)

df3 = pd.concat([df1['Name'].reset_index(drop=True), 
                df2['ID'].reset_index(drop=True)], axis=1)

print(df3)

Ответ будет таким:

     Name     ID
0   CommI  COAM2
1  DoammB  DOAM4
2   LingS  LOAM4
3  VoammE  VOAM1
→ Ссылка
Автор решения: Jack Russtrel
df3 = pd.merge(df, df1, on='IDs', how='left')
→ Ссылка