Python-将数据中的代码映射到描述的最佳方法

时间:2019-12-04 20:03:11

标签: python pandas dictionary format

我得到了想要的结果,但想了解这是否被认为是最好的,甚至是将数据代码映射到描述符的正确方法。

我有一个数据集,其中许多值以表示某些属性的数字代码形式存储-例如

Fruit_Type:
1 = Apple,
2 = Orange,
3 = Banana,
4 = Grape

在SAS中,我将使用Proc格式将数字映射到描述符。在SQL中,我通常会使用case语句,该语句可以让我保留原始字段名称或为其分配新名称。

我对Python相当陌生,并且很好奇这将是最好的方法。我一直在使用-似乎正常工作的是将映射创建为字典,然后使用.apply函数创建新列。这可行,但这是正确的方法吗?

import pandas as pd 
# Create sample dataframe  
data = {'Fruit_Type':[1, 2, 2, 3, 1, 2, 4], 
        'other_data':['blah', 'blah','blah', 'blah','blah', 'blah',
                      'blah']} 

df = pd.DataFrame(data) 

#create dictionary
Fruit_Type_dictionary = {1: 'Apple',
                        2: 'Orange',
                        3: 'Banana',
                        4: 'Grape'}

df['rpt_Fruit_Type']= df['Fruit_Type'].apply(lambda x: Fruit_Type_dictionary.get(x))

print(df) 

产生:

       Fruit_Type other_data rpt_Fruit_Type
0           1       blah          Apple
1           2       blah         Orange
2           2       blah         Orange
3           3       blah         Banana
4           1       blah          Apple
5           2       blah         Orange
6           4       blah          Grape

这几乎给了我我想要的结果。

1 个答案:

答案 0 :(得分:2)

我将使用map系列方法来提高可读性:

df['rpt_Fruit_Type']= df['Fruit_Type'].map(Fruit_Type_dictionary)