python DataFrame onehot编码,一列变多列

博客围绕Python中DataFrame的OneHot编码展开,介绍了将一列数据转换为多列的操作。OneHot编码是数据处理的重要手段,在数据分析和机器学习等领域有广泛应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import pandas as pd
carria_code_dict={"CZ":0,"SC":1,"Y8":2,"3U":3,"MU":4,"NS":5}
carria_len=carria_code_dict.__len__()
def encode_data(str):
    datas=str.split(',')
    encode_result=['0']*carria_len
    for data in datas:
        temp=data.split(":")
        if(temp.__len__()!=2 or  not carria_code_dict.has_key(temp[0])):
            pass
        else:
            encode_result[carria_code_dict.get(temp[0])]=temp[1]
    return ','.join(encode_result)
df2=pd.DataFrame([["CZ:1,SC:4,Y8:1"],["3U:2,CZ:1,MU:6,NS:3"]],
                 columns=['carrier'])
df2[carria_code_dict.keys()] =df2['carrier'].map(lambda x:encode_data(x)).str.split(',',expand=True)
print df2 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值