我有这样一个数据帧:

df = pd.DataFrame({"year": [2000,2000,2000,2001,2001,2001], "A": [1,1,0,0,1,0], "B": [4,4,6,10,10,10]})
df
    year    A   B
0   2000    1   4
1   2000    1   4
2   2000    0   6
3   2001    0   10
4   2001    1   10
5   2001    0   10

我想为a和B的每个值组合创建一个唯一的id号.

    year    A   B  ID_AB
0   2000    1   4  1
1   2000    1   4  1
2   2000    0   6  2
3   2001    0   10 3
4   2001    1   10 4
5   2001    0   10 3

大概第一步是

g = df.groupby(["A", "B"])

但下一步是什么?谢谢

推荐答案

try .groupby,然后是.ngroup():

df["ID_AB"] = df.groupby(["A", "B"], sort=False).ngroup() + 1
print(df)

打印:

   year  A   B  ID_AB
0  2000  1   4      1
1  2000  1   4      1
2  2000  0   6      2
3  2001  0  10      3
4  2001  1  10      4
5  2001  0  10      3

Python相关问答推荐

如何从数据库上传数据到html?

Pandas GroupBy可以分成两个盒子吗?

基于行条件计算(pandas)

python panda ExcelWriter切换动态公式到数组公式

导入错误:无法导入名称';操作';

基于另一列的GROUP-BY聚合将列添加到Polars LazyFrame

如何将数据帧中的timedelta转换为datetime

Python—在嵌套列表中添加相同索引的元素,然后计算平均值

504未连接IB API TWS错误—即使API连接显示已接受''

提取最内层嵌套链接

如果不使用. to_list()[0],我如何从一个pandas DataFrame中获取一个值?

删除Dataframe中的第一个空白行并重新索引列

在round函数中使用列值

如何在Python中实现高效地支持字典和堆操作的缓存?

将参数从另一个python脚本中传递给main(argv

生产者/消费者-Queue.get by list

保存由PYTHON在EXCEL中所做更改的问题

有没有一种简单的方法来访问Polars struct 中的值?

设计添加和搜索词的数据 struct :Leetcode211

在忽略on列中的重复值的同时连接polars重命名