你好我有两个 df 比如
df1
COL1 COL2
A 1
A 2
B 3
B 4
C 5
D 6
E 7
F 8
df2
Old New
A A.1
C C.1
E E.1
我想用 df2.New
值替换 COL1
df2.Ol
d 中匹配的值。
并得到: df1
COL1 COL2
A.1 1
A.1 2
B 3
B 4
C.1 5
D 6
E.1 7
F 8
有人有想法吗?
最佳答案
df1 = pd.read_csv(io.StringIO('''COL1 COL2
A 1
A 2
B 3
B 4
C 5
D 6
E 7
F 8 '''),sep='\s+')
df2 = pd.read_csv(io.StringIO('''Old New
A A.1
C C.1
E E.1 '''),sep='\s+')
df1['COL1'] = df1.merge(df2.rename(columns={'Old':'COL1'}),on='COL1',how='left')['New'].fillna(df1['COL1'])
输出:
COL1 COL2
0 A.1 1
1 A.1 2
2 B 3
3 B 4
4 C.1 5
5 D 6
6 E.1 7
7 F 8
关于python - 根据 Pandas 另一个选项卡中的匹配项更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65581315/