gpt4 book ai didi

python - 如何将 cumcount 应用于两列?

转载 作者:太空宇宙 更新时间:2023-11-04 09:24:35 25 4
gpt4 key购买 nike

我有一个包含名称和日期的数据框。我想创建一个计数列,它只会在日期不同时递增。请看下面第三栏:

Name    Date          COLUMN I NEED
---- ---- -------------
Bob 11-01-2019 1
Bob 11-01-2019 1
Bob 11-20-2019 2
Mike 12-01-2019 1
Mike 12-02-2019 2
Mike 12-03-2019 3
Steve 01-01-2019 1
Steve 01-01-2019 1

我尝试使用:

df['COLUMN RESULT'] = df.groupby(['Name'])['Date'].cumsum() + 1

Name Date COLUMN RESULT
---- ---- -------------
Bob 11-01-2019 1
Bob 11-01-2019 2
Bob 11-20-2019 3
Mike 12-01-2019 1
Mike 12-02-2019 2
Mike 12-03-2019 3
Steve 01-01-2019 1
Steve 01-01-2019 2

但是不管是什么日期它都会递增。感谢您的帮助,我很感激!

最佳答案

使用

df['result'] = df.Date.ne(df.Date.shift()).groupby(df.Name).cumsum().astype(int)

    Name        Date  result
0 Bob 11-01-2019 1
1 Bob 11-01-2019 1
2 Bob 11-20-2019 2
3 Mike 12-01-2019 1
4 Mike 12-02-2019 2
5 Mike 12-03-2019 3
6 Steve 01-01-2019 1
7 Steve 01-01-2019 1

关于python - 如何将 cumcount 应用于两列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58456057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com