处理数据到分类和枚举



我是Python上的新手。我有一个数据框:

d = {'Categorical': ['A','B','C','A'], 
      'Order':      ['First','Second', 'First','Second'], 
      'Numerical':  [20,22,21,25]} 
df = pd.DataFrame(data=d)

我应该处理此框架以获取以下:

Categorical Order   Numerical
1           1       20
2           2       22
3           1       21
1           2       25

这里的技巧如下:

Python应该了解Categorical列是分类的。Order列是命令很重要的列举。

我应该在这里考虑使用什么编码?

您正在寻找方法.map()

首先,您需要一个字典,其中包含类别的"翻译"到值:

order_dict = {'First':1,'Second':2}

然后只在列上调用映射

df['Order_value'] = df.Order.map(order_dict)

Out[6]: 
  Categorical   Order  Numerical  Order_value
0           A   First         20       1
1           B  Second         22       2
2           C   First         21       1
3           A  Second         25       2

使用'Categorical'列,您可以使用ord()

df['Categorical_value'] = df.Categorical.apply(ord) - 64
Out[7]: 
  Categorical   Order  Numerical  Order_value  Categorical__value
0           A   First         20       1         1
1           B  Second         22       2         2
2           C   First         21       1         3
3           A  Second         25       2         1

最新更新