次のデータフレームがあるとします。
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}
'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
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加