Pandas中类别型变量映射为数字或其它值

在机器学习中对于有序的类别型变量可以不采用onehot编码,直接使用有序数字代替即可,这个目的可以在pandas中使用map方法实现。

import pandas as pd

创建数据框

raw_data = {'first_name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'], 
        'last_name': ['Miller', 'Jacobson', 'Ali', 'Milner', 'Cooze'], 
        'age': [42, 52, 36, 24, 73], 
        'city': ['San Francisco', 'Baltimore', 'Miami', 'Douglas', 'Boston']}
df = pd.DataFrame(raw_data, columns = ['first_name', 'last_name', 'age', 'city'])
df
  first_name last_name age city
0 Jason Miller 42 San Francisco
1 Molly Jacobson 52 Baltimore
2 Tina Ali 36 Miami
3 Jake Milner 24 Douglas
4 Amy Cooze 73 Boston

在这里假定是有序的,将城市名映射为数字,当然也可是是其它字符中:

创建用于map的字典

city_to_state = { 'San Francisco' : 0, 
                  'Baltimore' : 1, 
                  'Miami' : 2, 
                  'Douglas' : 3, 
                  'Boston' : 4}

城市名map到洲名,保存到state变量中:

df['state'] = df['city'].map(city_to_state)
df
  first_name last_name age city state
0 Jason Miller 42 San Francisco 0
1 Molly Jacobson 52 Baltimore 1
2 Tina Ali 36 Miami 2
3 Jake Milner 24 Douglas 3
4 Amy Cooze 73 Boston 4

你可能感兴趣的:(pandas)