我需要將數字分配給數據框中特定列的唯一值,并將其作為新列...例如: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
蠱毒傳說
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

添加回答
舉報
0/150
提交
取消
