如果两个不同数据帧中两列的值匹配,则将df2中另一列的值复制到df1中的列

2024-06-30 12:35:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据帧,如果两个数据帧中的“ID”列中的值匹配,我希望将df2中列“Result2”中的值复制到df1中的列“Result1”,并将列“Description”从df2添加到df1中,这些值与列“Result2”(已复制)中的值位于同一行中。在

以下是数据帧:

df1型

ID              Result1
Position1       NaN
MRS1            OK
MRS2            Maybe
MRS3            NOK
Position2       NaN
MRS4            OK
MRS5            OK
Position3       NaN
MRS6            OK
Position4       NaN
MRS7            NOK
MRS8            OK
MRS9            NOK
MRS10           Excellent

df2型

^{pr2}$

我想得到:

ID              Result1             Result2
Position1       NaN                  NaN
MRS1            OK                   New
MRS2            OK                   Old
MRS3            OK                   New
Position2       NaN                  NaN
MRS4            OK                   New
MRS5            OK                   NaN            
Position3       NaN                  NaN
MRS6            NOK                  Very old
Position4       NaN                  NaN
MRS7            Excellent            Very old
MRS8            Excellent            Old
MRS9            Excellent            New
MRS10           NOK                  New

我在应该是空牢房的地方放了NaN。如何在熊猫身上做到这一点? 我尝试过合并,但我遇到了问题,因为它需要相同长度的比较列。我只想比较两个数据帧中“ID”列的值,而这些列的长度不一样。在


Tags: 数据idnewoknandf1df2excellent
1条回答
网友
1楼 · 发布于 2024-06-30 12:35:33

仅将^{}与列ID与左连接和rename列一起使用:

df = (df1[['ID']].merge(df2, on='ID', how='left')
                 .rename(columns={'Result2':'Result1','Description':'Result2'}))
print (df)
           ID    Result1   Result2
0   Position1        NaN       NaN
1        MRS1         OK       New
2        MRS2         OK       Old
3        MRS3         OK       New
4   Position2        NaN       NaN
5        MRS4         OK       New
6        MRS5         OK       NaN
7   Position3        NaN       NaN
8        MRS6        NOK  Very old
9   Position4        NaN       NaN
10       MRS7  Excellent  Very old
11       MRS8  Excellent       Old
12       MRS9  Excellent       New
13      MRS10        NOK       New

相关问题 更多 >