Python 替换另一行中与另一列上的值匹配的值?

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

我有一个数据帧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.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函数将为您删除公共列