如何在Dask DataFrame中新列中为每个值添加唯一ID
我有一个这样的dask数据框:
column1 column2
a 1
a 2
b 3
c 4
c 5
我需要添加一个新列,这个新列要显示column1中每个值的唯一连续编号。我的输出结果应该是:
column1 column2 column 3
a 1 1
a 2 1
b 3 2
c 4 3
c 5 3
我该怎么做呢?提前感谢你的帮助。
1 个回答
0
你提到的是标签编码,这个功能在scikit-learn库的LabelEncoder
中可以找到,具体可以查看这个链接:https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html。
这里是如何将它应用到你的Dask数据框中的:
import dask.dataframe as dd
import pandas as pd
from sklearn import preprocessing
df = pd.DataFrame([('a', 1), ('a', 2), ('b', 3), ('c', 4), ('c', 5)])
ddf = dd.from_pandas(df)
ddf.columns = ['column1', 'column2']
le = preprocessing.LabelEncoder()
ddf['column3'] = pd.Series(le.fit_transform(ddf.column1.values) + 1)
print(ddf.head())
*这里的+ 1
是因为你的标签是从1开始的。默认情况下,标签是从0开始的。
输出结果:
column1 column2 column3
0 a 1 1
1 a 2 1
2 b 3 2
3 c 4 3
4 c 5 3