首页 > 解决方案 > 给定列的唯一索引值的新列

问题描述

我有以下数据框:

data = dict(name=['a', 'a', 'a', 'b', 'b', 'c', 'd'])
df = pd.DataFrame(data=data, columns=data.keys())

如何创建一个新行,其值对应于 的唯一值name

我想要的是以下内容,请:

df.index = [1, 1, 1, 2, 2, 3, 4]

标签: pythonpandasdataframeindexingunique

解决方案


列举三种方法

df.index=pd.factorize(df.name)[0]+1
df.index=df.name.astype('category').cat.codes+1
df.index=df.groupby('name').ngroup()+1

推荐阅读