python - 为 Pandas 中的组分配唯一的数字组 ID

标签 python pandas pandas-groupby

<分区>

我一直遇到必须为数据集中的每个组分配唯一 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/

相关文章:

python - 如何将python list [a,b,c,d]转换为[a:b,c:d]格式

python - 如何轻松地将数组的内容放入 pandas 数据框中?

python - 使用引用组标准化 Pandas GroupBy 数据框中的数据

python - 从 groupby.size() 命令查找总计

Python Pandas Groupby 根据索引重置值

python - python中数组的字符串表示

python - 1064 : SQL syntax error executing PyMySQL query

python - 使用python从查询字符串中获取数据

python-3.x - 如何在 Debian Buster 上安装 pandas 和 numpy?

python - 从 Pandas 中的 GroupBy 对象中获取所有键