我有一个数据框,其中水果的名称是整数格式。但是,我想用实际的字符串名称替换它们。
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次操作中执行此操作的最简单方法是什么,而不是为每种水果类型单独执行此操作? [这是一个例子,所以我的名字列表中可以有更多项目]
答案 0 :(得分: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'}
答案 1 :(得分: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