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_namelast_nameagecity
0JasonMiller42San Francisco
1MollyJacobson52Baltimore
2TinaAli36Miami
3JakeMilner24Douglas
4AmyCooze73Boston

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

创建用于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_namelast_nameagecitystate
0JasonMiller42San Francisco0
1MollyJacobson52Baltimore1
2TinaAli36Miami2
3JakeMilner24Douglas3
4AmyCooze73Boston4
  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值