データフレームで辞書のkeyと一致した要素のみそのvalueを出す
以前質問に答えていただき、リストの要素が辞書のkeyと一致したときにそのvalueを出す関数を以下のように作れました。これをデータフレームでおこなうにはどうすればいいでしょうか?どうしてもvalueを出せません。どうか教えていただけないでしょうか。
import pandas as pd
import numpy as np
fruitnames = ["Apple", "Grape","Orange"]
fruitnumbers = {"Grape":2,"Strawberry":20,"Apple":10,"Orange":40}
def fruitcode():
for key, value in fruitnumbers.items():
for fruitname in fruitnames:
if key == fruitname:
print(fruitname, fruitnumbers[fruitname])
fruitcode()
出力結果
Grape 2
Apple 10
Orange 40
これをデータフレームでもできないでしょうか?
df = pd.DataFrame(columns = ['Fruit', 'FruitNumber'])
df['Fruit'] = fruitnames
df
とすると、出力結果は
Fruit FruitNumber
0 Apple NaN
1 Grape NaN
2 Orange NaN
となり、さらに
for key, value in fruitnumbers.items():
if key == df['Fruit']:
df['FruitNumber'] = fruitnumbers[df.Fruit]
else:
df['FruitNumber'] = 'None'
を加えるとValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().とでてしまいます。理想は
Fruit FruitNumber
0 Apple 10
1 Grape 2
2 Orange 40
です。どうぞよろしくお願い致します。