Чтобы показать вам пример:
Данные:
df = pd.DataFrame({"val": [1,2,3,4,5], "key": ["Private 1st class", "Private First Class", "PFC", "other", "other"]})
Диктофон перевода:
translate = pd.DataFrame.from_records({"key": ["Private 1st class", "PFC", "Private First Class"],
"harmonizedkey": ["PFC", "PFC", "PFC"]})
Давайте объединим диктовку с df
:
newdf = pd.merge(df, translate, how = "left", on = "key")
Создать новую (полную) группу:
newdf["newgroup"] = newdf["harmonizedkey"].combine_first(newdf["key"])
newdf
key val harmonizedkey newgroup
0 Private 1st class 1 PFC PFC
1 Private First Class 2 PFC PFC
2 PFC 3 PFC PFC
3 other 4 NaN other
4 other 5 NaN other
Теперь используйте groupby
:
newdf.groupby("newgroup").sum()
val
newgroup
PFC 6
other 9