如何在Dask DataFrame中新列中为每个值添加唯一ID

0 投票
1 回答
25 浏览
提问于 2025-04-13 14:50

我有一个这样的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

撰写回答