我有以下 dask 数据框
column1 column2
a 1
a 2
b 3
c 4
c 5
我需要添加一个新列,其中包含列 1 中值的唯一连续编号。我的输出将是:
column1 column2 column 3
a 1 1
a 2 1
b 3 2
c 4 3
c 5 3
我如何实现它?预先感谢您的帮助。
您正在谈论标签编码,您可以在 scikit-learn 的
LabelEncoder
中找到它的实现(https://scikit-learn.org/stable/modules/ generated/sklearn.preprocessing.LabelEncoder.html)。
此处将其应用于您的 Dask Dataframe:
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