2015-11-06 28 views
0

我有一個數據幀的水果名稱是整數格式。但是,我想用實際的字符串名稱替換它們。如何將一列中的整數值從pandas中的映射更改爲字符串?

fruit_names = {'1' : 'Grapes', '2' : 'Oranges', '3' : 'Apples'} 
order_inventory = pd.DataFrame({'Year': [1997,1998,1999],'Fruit': [1,2,1], 'Qty': [12,15,12]}) 
print order_inventory 

Fruit Qty Year 
0 1 12 1997 
1 2 15 1998 
2 1 12 1999 

什麼是最簡單的方法來執行此操作1對每個水果類型單獨做? [這是一個例子,所以我可以有更多的項目在我的名字列表]

回答

1

你需要有字典int因爲Fruit也是int以及。然後只需使用map

fruit_names = {1 : 'Grapes', 2 : 'Oranges', 3 : 'Apples'} 
order_inventory = pd.DataFrame({'Year': [1997,1998,1999],'Fruit': [1,2,1], 'Qty': [12,15,12]}) 


order_inventory['Fruit'].map(fruit_names) 
Out[81]: 
0  Grapes 
1 Oranges 
2  Grapes 
Name: Fruit, dtype: object 

如果你的字典實際上是字符串,你有很多的項目,你可以做以下轉換爲int:

fruit_names = {int(k):str(v) for k,v in fruit_names.items()} 
fruit_names 
Out[101]: {1: 'Grapes', 2: 'Oranges', 3: 'Apples'} 
0
import pandas as pd 

fruit_names = {1 : 'Grapes', 2 : 'Oranges', 3 : 'Apples'} 
order_inventory = pd.DataFrame({'Year': [1997,1998,1999],'Fruit': [1,2,1], 'Qty': [12,15,12]}) 

convert_to_string = lambda x: fruit_names[x] 

order_inventory['Fruit'] = order_inventory['Fruit'].apply(convert_to_string) 

print order_inventory 

>>> order_inventory 
    Fruit Qty Year 
0 Grapes 12 1997 
1 Oranges 15 1998 
2 Grapes 12 1999 
相關問題