使用另一个 pandas 数据框映射替换列值

问题描述 投票:0回答:0

想象一下,我有以下跨国合同的员工信息脏数据:

ID  Country  Name     Job        Date         Grade
1   CZ       John     Office     2021-01-01   Senior
1   SK       John     .          2021-01-01   Assistant
2   AE       Peter    Carpinter  2000-05-03 
3   PE       Marcia   Cleaner    1989-11-11   ERROR!
3   FR       Marcia   Assistant  1978-01-05   High
3   FR       Marcia              1999-01-01   Senior

我需要查看 LOV 映射表,每个国家/地区都有不同(或相同)的 LOV 列,这些列将替换代码提供的值。然后对于每个国家/地区,它将检查该列是否在该国家/地区的 LOV 映射中,如果该值存在于“值”列中,则替换为相应的代码。如果不是,就保留相同的值。

所以使用这个映射:

Country Field   Values      Code
US      Job     Back        BA
US      Job     Front       FR
US      Job     Office      OFF
CZ      Job     Office      CZ_OFF
CZ      Job     Field       CZ_Fil
SK      Job     All         ALL
FR      Job     Assistant   AST
AE      Job     Carpinter   CAR
AE      Job     Carpinter   CAR
CZ      Grade   Senior      S
CZ      Grade   Junior      J
SK      Grade   M1          M1
FR      Grade   Low         L
FR      Grade   Mid         M1
FR      Grade   High        H

会产生以下数据框:

ID  Country     Name    Job     Date        Grade
1   CZ          John    CZ_OFF  2021-01-01  S
1   SK          John    .       2021-01-01  M1
2   AE          Peter   CAR     2000-05-03  
3   PE          Marcia  Cleaner 1989-11-11  ERROR!
3   FR          Marcia  AST     1978-01-05  H
3   FR          Marcia          1999-01-01  Senior

非常感谢您的支持!

python pandas apply group
© www.soinside.com 2019 - 2024. All rights reserved.