2 回答

TA貢獻1811條經驗 獲得超6個贊
利用
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

TA貢獻1830條經驗 獲得超3個贊
使用groupby apply和shift
df['result'] = df.groupby('Name')['Date'].apply(lambda x : x.ne(x.shift()).cumsum())
print(df)
Name Date given_output result
0 Bob 2019-11-01 1 1
1 Bob 2019-11-01 1 1
2 Bob 2019-11-20 2 2
3 Mike 2019-12-01 1 1
4 Mike 2019-12-02 2 2
5 Mike 2019-12-03 3 3
6 Steve 2019-01-01 1 1
7 Steve 2019-01-01 1 1
添加回答
舉報