pandas进阶

pandas使用get_dummies进行one-hot编码

import pandas as pd  
df = pd.DataFrame([  
            ['green', 'M', 10.1, 'class1'],   
            ['red', 'L', 13.5, 'class2'],   
            ['blue', 'XL', 15.3, 'class1']])  

df.columns = ['color', 'size', 'prize', 'class label']  

size_mapping = {  
           'XL': 3,  
           'L': 2,  
           'M': 1}  
df['size'] = df['size'].map(size_mapping)  

class_mapping = {label:idx for idx,label in enumerate(set(df['class label']))}  
df['class label'] = df['class label'].map(class_mapping)  
pd.get_dummies(df) #进行onehot编码
You can use assign, which assigns a new column to the dataframe and returns a new copy. This was added in version 0.16.0:

>>> df.assign(c = df.a / df.b)
    a  b  c
1  12  6  2
局部排序并归一化

def f(x):
    a = x.max()
    b = x.min()
    return x.map(lambda x:(x-b)/(a-b))

actions_res.loc[:,'rank_recent_view_time'] = actions_res.groupby('user_id')['actions_all_recent_view_time']\
        .rank(method='min',ascending=True).reset_index().iloc[:,-1]
actions_res['rank_recent_view_time'] = actions_res.groupby('user_id')['rank_recent_view_time'].apply(f)
actions = actions.assign(is_315_active = 1.0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值