Python 替换另一行中与另一列上的值匹配的值?
我有一个数据帧df1,看起来像这样:Python 替换另一行中与另一列上的值匹配的值?,python,pandas,lookup,Python,Pandas,Lookup,我有一个数据帧df1,看起来像这样: INV AMOUNT Match 1 A 36.85 NaN 2 B 289.84 NaN 3 C -96.75 B 4 D -36.85 A 我想用AMOUNT的绝对值替换AMOUNT列的值,其中MATCH与INV相同 应该是这样的,只有第2行应该更改 INV AMOUNT Match 1 A 36.85 NaN 2 B *96.7
INV AMOUNT Match
1 A 36.85 NaN
2 B 289.84 NaN
3 C -96.75 B
4 D -36.85 A
我想用AMOUNT的绝对值替换AMOUNT列的值,其中MATCH与INV相同
应该是这样的,只有第2行应该更改
INV AMOUNT Match
1 A 36.85 NaN
2 B *96.75* NaN
3 C -96.75 B
4 D -36.85 A
换句话说,
如果我有df1:
INV AMOUNT
1 A 36.85
2 B 289.84
3 C -96.75
4 D -36.85
和df2:
Match MONEY
1 NaN 36.85
2 NaN 289.84
3 A -96.75
4 B -36.85
用df2中的货币绝对值列替换df1的金额,其中INV与df2中的匹配列匹配
df1应该看起来像:
INV AMOUNT
1 A 36.85
2 B 96.75
3 C -96.75
4 D -36.85
您想合并两个数据帧
df1.merge(df2, left_on='AMOUNT', right_on='MONEY').drop('MONEY',axis=1)
两个数据帧将在“MONEY”和“AMOUNT”abs值相同的所有位置合并,如果要合并两个数据帧,drop函数将为您删除公共列
df1.merge(df2, left_on='AMOUNT', right_on='MONEY').drop('MONEY',axis=1)
两个数据帧将在“MONEY”和“AMOUNT”abs值相同的所有位置合并,drop函数将为您删除公共列