假设您具有以下数据框:
ridx = pd.MultiIndex.from_tuples([('Tom','apple'),('Tom','banana'),('Anna','banana'),('Anna','citrus')], names=['basket', 'fruit'])
df = pd.DataFrame({'Quantity' : [1, 2, 3, 4]}, index=ridx)
df
而且您有一本字典,告诉您每种水果有多少糖:
sugar_content = {'apple':3,'banana':10,'citrus':2}
如何在数据框中添加一个新列,其中包含“水果”索引中指定的水果的糖含量?
更快的方法做到这一点:
In [58]: df['sugar_content'] = df.reset_index()['fruit'].map(sugar_content).to_frame().set_index(df.index)
In [59]: df
Out[59]:
Quantity sugar_content
basket fruit
Tom apple 1 3
banana 2 10
Anna banana 3 10
citrus 4 2
解释:
In [60]: df.reset_index()['fruit'].map(sugar_content)
Out[60]:
0 3
1 10
2 10
3 2
Name: fruit, dtype: int64
In [61]: df.reset_index()['fruit'].map(sugar_content).to_frame()
Out[61]:
fruit
0 3
1 10
2 10
3 2
In [62]: df.reset_index()['fruit'].map(sugar_content).to_frame().set_index(df.index)
Out[62]:
fruit
basket fruit
Tom apple 3
banana 10
Anna banana 10
citrus 2
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句