pandas 对一列做变换,手工版的labelEncoder 和 labelEncoder

import pandas as pd

df = pd.DataFrame({"key": ["aa", "bb", "cc"]})
dict = {"aa": 1, "bb": 3, "cc": 2}
df_map = df["key"].map(dict)

print("raw:\n", df.head())
print("mapped:\n", df_map)

 

raw:
   key
0  aa
1  bb
2  cc
mapped:
 0    1
1    3
2    2
Name: key, dtype: int64

 

 

from sklearn.preprocessing import LabelEncoder
df = pd.DataFrame({"f1": ["aa", "bb", "cc"],"f2": ["bb", "bb", "cc1"]})
co_feature = pd.DataFrame()
dict_data  = {}
index = 0
for col in ["f1","f2"]:
	le = LabelEncoder()
	le.fit(df[col])
	row = le.transform(df[col])
	dict_data[col] = row + index
	index = max(row) + 1


print(dict_data)

 

编码结果:

{'f1': array([0, 1, 2]), 'f2': array([3, 3, 4])}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值