根据另一列特定值的每次出现,在Pandas中添加索引

2024-09-30 08:32:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个数据帧:

category name   age 
parent  harry   29
child   smith   12
parent  sally   41
child   david   19
child   mike    16

我想根据类别列值“parent”(数据框按顺序排列)的每次出现向组族添加一列。例如:

category name   age  family_id
parent  harry   29     0
child   smith   12     0
parent  sally   41     1
child   david   19     1
child   mike    16     1

我正在尝试将族id设置为递增整数

我已经尝试了一系列的groupby,目前正在尝试编写我自己的apply函数,但是速度非常慢,不能像预期的那样工作。我还没有找到一个例子,在每次出现相同的值时,根据列值对行进行分组


Tags: 数据nameidchildage类别sallyparent
1条回答
网友
1楼 · 发布于 2024-09-30 08:32:30

如果category列等于parent并且^{}^{}是从1开始减去1,则可以使用^{}进行匹配:

df['family_id'] = df['category'].eq('parent').cumsum().sub(1)
print(df)

  category   name  age  family_id
0   parent  harry   29          0
1    child  smith   12          0
2   parent  sally   41          1
3    child  david   19          1
4    child   mike   16          1

相关问题 更多 >

    热门问题