Python从df2查找并替换df1值
我有两个数据帧Python从df2查找并替换df1值,python,pandas,Python,Pandas,我有两个数据帧 dfdf2 dfcolumnFOUR与df2columnLOOKUP COL 我需要将dfcolumnFOUR与df2columnLOOKUP COL匹配,并将dfcolumnFOUR替换为df2column中的相应值返回此 生成的数据帧可以覆盖df,但我将其列为result 注意:索引在每个数据帧上都不匹配 df = pd.DataFrame([['a', 'b', 'c', 'd'], ['e', 'f', 'g', 'h'],
df
df2
df
columnFOUR
与df2
columnLOOKUP COL
我需要将df
columnFOUR
与df2
columnLOOKUP COL
匹配,并将df
columnFOUR
替换为df2
column中的相应值返回此
生成的数据帧可以覆盖df
,但我将其列为result
注意:索引在每个数据帧上都不匹配
df = pd.DataFrame([['a', 'b', 'c', 'd'],
['e', 'f', 'g', 'h'],
['j', 'k', 'l', 'm'],
['x', 'y', 'z', 'w']])
df.columns = ['ONE', 'TWO', 'THREE', 'FOUR']
ONE TWO THREE FOUR
0 a b c d
1 e f g h
2 j k l m
3 x y z w
df2 = pd.DataFrame([['a', 'b', 'd', '1'],
['e', 'f', 'h', '2'],
['j', 'k', 'm', '3'],
['x', 'y', 'w', '4']])
df2.columns = ['X1', 'Y2', 'LOOKUP COL', 'RETURN THIS']
X1 Y2 LOOKUP COL RETURN THIS
0 a b d 1
1 e f h 2
2 j k m 3
3 x y w 4
结果DF
ONE TWO THREE FOUR
0 a b c 1
1 e f g 2
2 j k l 3
3 x y z 4
应该足够做这个把戏吗?可能有一种更为自然的方式来做这件事
基本上,列表理解-我们在遍历df['Four']列表中的i时,使用查找列生成一个新的df2['returnthis']
值数组
应该足够做这个把戏吗?可能有一种更为自然的方式来做这件事
基本上,列表理解-我们在遍历df['Four']
列表中的i时,使用查找列生成一个新的df2['RETURN THIS']
值数组。您可以使用Series.map。您需要创建一个字典或一个系列以在地图中使用。一个系列在这里更有意义,但索引应该是LOOKUP COL
:
df['FOUR'] = df['FOUR'].map(df2.set_index('LOOKUP COL')['RETURN THIS'])
df
Out:
ONE TWO THREE FOUR
0 a b c 1
1 e f g 2
2 j k l 3
3 x y z 4
您可以使用Series.map。您需要创建一个字典或一个系列以在地图中使用。一个系列在这里更有意义,但索引应该是LOOKUP COL
:
df['FOUR'] = df['FOUR'].map(df2.set_index('LOOKUP COL')['RETURN THIS'])
df
Out:
ONE TWO THREE FOUR
0 a b c 1
1 e f g 2
2 j k l 3
3 x y z 4
请不要张贴图片。(见)更新了。。。不知道此规则请不要发布图像。(见)更新了。。。我不知道这条规则