Как установить столбец в соответствии со значениями двух других столбцов? - PullRequest
0 голосов
/ 14 октября 2019

У меня есть словарь итогов:

totals = {('china', 1990): 12345, ('china', 1999): 6789, ('mexico', 1989): 98765}

и фрейм данных df:

country   year
china     1990
china     1999
mexico    1989
....

Я хотел бы добавить новый столбец totals в соответствии ссловарь выше. Я пробовал это, но это не работает:

df['total'] = df[['country', 'year']].apply(lambda x: totals[x])

Какой правильный способ сделать это?

1 Ответ

1 голос
/ 14 октября 2019

Первая идея - использовать Index.map от MultiIndex с DataFrame.set_index:

df['total'] = df.set_index(['country', 'year']).index.map(totals)

Или создать Series и использовать DataFrame.join:

df = df.join(pd.Series(totals, name='total'), on=['country', 'year'])

print (df)
  country  year  total
0   china  1990  12345
1   china  1999   6789
2  mexico  1989  98765
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...