<分区>
我一直遇到必须为数据集中的每个组分配唯一 ID 的问题。我在 RNN 的零填充、生成图形和许多其他场合中使用了它。
这通常可以通过连接每个 pd.groupby
列中的值来完成。但是,通常情况下,定义组的列数、它们的 dtype 或值大小使串联成为一种不切实际的解决方案,会不必要地耗尽内存。
我想知道是否有一种简单的方法可以为 pandas 中的组分配一个唯一的数字 ID。
<分区>
我一直遇到必须为数据集中的每个组分配唯一 ID 的问题。我在 RNN 的零填充、生成图形和许多其他场合中使用了它。
这通常可以通过连接每个 pd.groupby
列中的值来完成。但是,通常情况下,定义组的列数、它们的 dtype 或值大小使串联成为一种不切实际的解决方案,会不必要地耗尽内存。
我想知道是否有一种简单的方法可以为 pandas 中的组分配一个唯一的数字 ID。
最佳答案
你只需要来自seeiespi(或pd.factorize
)的ngroup
数据
df.groupby('C').ngroup()
Out[322]:
0 0
1 0
2 2
3 1
4 1
5 1
6 1
7 2
8 2
dtype: int64
更多选项
pd.factorize(df.C)[0]
Out[323]: array([0, 0, 1, 2, 2, 2, 2, 1, 1], dtype=int64)
df.C.astype('category').cat.codes
Out[324]:
0 0
1 0
2 2
3 1
4 1
5 1
6 1
7 2
8 2
dtype: int8
关于python - 为 Pandas 中的组分配唯一的数字组 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50050617/