如何在dask数据帧的新列中添加每个值的唯一ID

问题描述 投票:0回答:1

我有以下 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

我如何实现它?预先感谢您的帮助。

python dask
1个回答
0
投票

您正在谈论标签编码,您可以在 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
© www.soinside.com 2019 - 2024. All rights reserved.