如何根据多索引熊猫数据框中的行索引值创建列?

安东内洛

假设您具有以下数据框:

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

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

多索引熊猫数据框的值错误

从数据框熊猫创建多索引

在熊猫数据框中创建多索引列

从多索引数据框熊猫获取列值

熊猫数据框-行和列的多索引?

高级熊猫:从某些行索引创建多索引熊猫数据框

如何在多索引熊猫数据框中根据索引级别获取小计

如何根据条件对多索引数据框中的列值进行计数

从熊猫数据框中的列创建多索引

从多索引熊猫数据框中引用熊猫系列值

熊猫:在多索引数据框中创建新的(子级别)列并分配值

如何从多索引熊猫数据框中筛选值

从多索引熊猫系列创建1列数据框

使用列中的值对熊猫数据框进行多索引

如何在熊猫中创建多索引数据框?

熊猫:在多索引数据框中设置值

如何为熊猫数据框中的多索引中的列选择最大值?

在多索引熊猫数据框中创建列名称列表

从多索引熊猫数据框创建索引

熊猫:根据其组内元素的相对索引在多索引数据框中创建列

如何访问熊猫多索引数据框中的特定行

根据行索引值从pandas数据框列中求和

根据特定索引对多索引熊猫数据框进行排序

如何从两列中获取包含特定值的熊猫数据框的行索引?

如何根据多索引添加熊猫数据框?

更改多索引熊猫数据框中的值

如何根据此 Pandas 数据框中的列条件创建新的索引行?

如何根据一列中的条件从多索引数据框中选择行

根据索引值拆分熊猫数据框