2017-12-18 195 views
0

我有一個數據框,它有一列名稱。我有另一個字典,其名稱爲鍵和值與它關聯。我想搜索一個在數據框中輸入名稱並在字段中添加相應的值。在數據框中搜索值,然後將字典中相應的值放入新的顏色

my dictionary 
fruits={'mango':1,'apple':2,'guava':0,'nut':1} 

my dataframe 
Fruit 
mango 
apple 
guava 
nut 

期望輸出

Fruit Frequency 
    mango 1 
    apple 2 
    guava 0 
    nut  1 

的數據幀已經.......我只想的值與相應的元件

此外,如果我的字典具有更多的鍵 - 值對比映射我原始數據幀如何將鍵和相應的值添加到數據框中。

想,如果我的數據幀是

Fruit 
mango 
apple 

現在我想剛纔螺母,而不是番石榴,因爲它的價值0

因此預計產出將是

Fruit Count 
mango 1 
apple 2 
nut 1 
+0

好的,太棒了。你的數據在哪裏?爲什麼不是你的問題?請提供[mcve]。 –

+0

對不起,我是新來的論壇 –

+0

你的預期輸出是什麼? –

回答

0

對於第一部分,使用map/replace -

df 

    Fruit 
0 mango 
1 apple 
2 guava 
3 nut 

df['Frequency'] = df.Fruit.map(fruits) 

df['Frequency'] = df.Fruit.replace(fruits) # alternative to map 

df 

    Fruit Frequency 
0 mango   1 
1 apple   2 
2 guava   0 
3 nut   1 

對於第二部分,則可以執行一組差異,與原來的串聯 -

df 

Fruit 
mango 
apple 

i = df.Fruit 
j = pd.Series(list(set(fruits.keys()).difference(i))) 

df = pd.concat([i, j], ignore_index=True).to_frame('Fruit') 
df 

    Fruit 
0 mango 
1 apple 
2 nut 
3 guava 

使用DROP行頻率== 0,我們ë布爾索引 -

df 

    Fruit Frequency 
0 mango   1 
1 apple   2 
2 guava   0 
3 nut   1 

df = df[df.Frequency.gt(0)] 
df 

    Fruit Frequency 
0 mango   1 
1 apple   2 
3 nut   1 

或者,使用eval/query

df.query("Frequency > 0") 

    Fruit Frequency 
0 mango   1 
1 apple   2 
3 nut   1 
相關問題