Pandas 如何根据其他两列的值设置列?
我有一本总计词典:Pandas 如何根据其他两列的值设置列?,pandas,Pandas,我有一本总计词典: totals = {('china', 1990): 12345, ('china', 1999): 6789, ('mexico', 1989): 98765} 和一个数据帧df: country year china 1990 china 1999 mexico 1989 .... 我想根据上面的字典添加一个新的总计列。我试过这个,但不起作用: df['total'] = df[['country', 'year']].apply(lambd
totals = {('china', 1990): 12345, ('china', 1999): 6789, ('mexico', 1989): 98765}
和一个数据帧df
:
country year
china 1990
china 1999
mexico 1989
....
我想根据上面的字典添加一个新的总计列
。我试过这个,但不起作用:
df['total'] = df[['country', 'year']].apply(lambda x: totals[x])
正确的方法是什么?第一个想法是由多索引使用:
或者创建系列
并使用:
df['total'] = df.set_index(['country', 'year']).index.map(totals)
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