首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫替换列中每个类别的前N行的文本

熊猫替换列中每个类别的前N行的文本
EN

Stack Overflow用户
提问于 2022-07-14 10:46:02
回答 1查看 30关注 0票数 0

我有这样的df

代码语言:javascript
复制
             animal          age          comment
     1        cat             1             xyz
     2        cat             2             xyz
     3        cat             3             xyz
     4        cat             4             xyz
     5        cat             5             xyz
     6        dog             1             xyz
     7        dog             2             xyz
     8        dog             3             xyz
     9        dog             4             xyz
    10        dog             5             xyz

它已经按动物和年龄分类了。我的任务是用特定的文本替换每个动物中前两行的注释,然后用另一文本替换下两行。其余的行应该被删除。

期望产出:

代码语言:javascript
复制
             animal          age          comment
     1        cat             1             young
     2        cat             2             young
     3        cat             3             old
     4        cat             4             old
     5        dog             1             young
     6        dog             2             young
     7        dog             3             old
     8        dog             4             old

我可以做到这一点,但在5-7步。我想知道是否有更有效的方法来做到这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-14 11:45:34

这里的诀窍是使用cumcount为每个animal组创建一个顺序计数器,然后使用np.where根据seq计数器的值更新comment中的值。

代码语言:javascript
复制
i = df.groupby('animal').cumcount()
df['comment'] = np.where(i < 2, 'young', 'old')

df[i < 4]

代码语言:javascript
复制
  animal  age comment
1    cat    1   young
2    cat    2   young
3    cat    3     old
4    cat    4     old
6    dog    1   young
7    dog    2   young
8    dog    3     old
9    dog    4     old
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72979240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档