gpt4 book ai didi

python - 如何根据多索引 pandas 数据框中的行索引值创建列?

转载 作者:太空宇宙 更新时间:2023-11-03 16:32:35 25 4
gpt4 key购买 nike

假设您有以下数据框:

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}

如何向数据框中添加一个新列,其中包含“fruit”索引中指定的水果的糖含量?

最佳答案

更快的方法:

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

关于python - 如何根据多索引 pandas 数据框中的行索引值创建列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37480701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com