我有一个总计字典:
postgresql
和数据框totals = {('china', 1990): 12345, ('china', 1999): 6789, ('mexico', 1989): 98765}
:
df
我想根据上面的字典添加country year
china 1990
china 1999
mexico 1989
....
的新列。我已经尝试过了,但是不起作用:
totals
什么是正确的方法?
答案 0 :(得分:1)
第一个想法是MultiIndex
与Index.map
一起使用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