为了账号安全,请及时绑定邮箱和手机立即绑定

Python:如何将数字映射到列中的唯一项目(枚举唯一对象)?

Python:如何将数字映射到列中的唯一项目(枚举唯一对象)?

元芳怎么了 2022-07-19 20:36:49
我需要将数字分配给数据框中特定列的唯一值,并将其作为新列...例如:ex_list=['12-B', '10002', '3A', '4', 'DCX', '3A'] df=pd.DataFrame(ex_list, columns=['Items'])这是预期的输出:请注意,我需要对超过 1M 行的数据框执行此操作,因此肯定会喜欢一种有效的方法!
查看完整描述

2 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

你可以这样做。


import pandas as pd

ex_list=['12-B', '10002', '3A', '4', 'DCX', '3A']

df=pd.DataFrame(ex_list, columns=['Items'])

df['Num_Items']=pd.factorize(df['Items'].tolist())[0]

输出


    Items   Num_Items

0   12-B    0

1   10002   1

2   3A      2

3   4       3

4   DCX     4

5   3A      2


查看完整回答
反对 回复 2022-07-19
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

ex_list=['12-B', '10002', '3A', '4', 'DCX', '3A']

df=pd.DataFrame(ex_list, columns=['Items'])

从列中获取唯一值,在这些唯一项和整数之间创建映射,然后沿Items列应用该映射。


mapping = {item:i for i, item in enumerate(df["Items"].unique())}

df["Num_Items"] = df["Items"].apply(lambda x: mapping[x])

df

//img1.sycdn.imooc.com//62d6a5930001cfa903030365.jpg

查看完整回答
反对 回复 2022-07-19
  • 2 回答
  • 0 关注
  • 165 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号