我有两个数据框:

import pandas as pd
d = {'0': [2154,799,1023,4724], '1': [27, 2981, 952,797],'2':[4905,569,4767,569]}
df1 = pd.DataFrame(data=d)




d={'PART_NO': ['J661-03982','661-08913', '922-8972','661-00352','661-06291',''], 'PART_NO_ENCODED': [2154,799,1023,27,569]}
df2 = pd.DataFrame(data=d)


我想为part_no中的每一行获取对应的df1,因此结果数据框应如下所示:

d={'PART_NO': ['J661-03982','661-00352',''], 'PART_NO_ENCODED': [2154,27,4905]}
df3 = pd.DataFrame(data=d)


我该怎么做呢?

最佳答案

您可以使用reindex(在set_index之后)

df2.set_index('PART_NO_ENCODED').reindex(df1.iloc[0,:]).reset_index().rename(columns={0:'PART_NO_ENCODED'})
Out[242]:
   PART_NO_ENCODED     PART_NO
0             2154  J661-03982
1               27   661-00352
2             4905         NaN

10-03 00:30