簡體   English   中英

Python:如何將數字映射到列中的唯一項(枚舉唯一對象)?

[英]Python: How to map numbers to unique items (enumerate unique objects) in a column?

我需要為數據框中特定列的唯一值分配數字,並將其作為新列...

例如:

ex_list=['12-B', '10002', '3A', '4', 'DCX', '3A']
df=pd.DataFrame(ex_list, columns=['Items'])

我的數據框

這是預期的輸出

預期數據框

請注意,我需要對超過 100 萬行的數據幀執行此操作,因此絕對會欣賞一種有效的方法!

你可以這樣做。

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
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

期望的輸出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM