亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將 cumcount 應用于兩列?

如何將 cumcount 應用于兩列?

慕的地8271018 2022-06-28 16:52:14
我有一個帶有名稱和日期的數據框。我想創建一個計數列,僅當日期不同時才會增加。請看下面的第三欄:Name    Date          COLUMN I NEED----    ----          -------------Bob     11-01-2019          1Bob     11-01-2019          1Bob     11-20-2019          2Mike    12-01-2019          1Mike    12-02-2019          2Mike    12-03-2019          3Steve   01-01-2019          1Steve   01-01-2019          1我嘗試使用:df['COLUMN RESULT'] = df.groupby(['Name'])['Date'].cumsum() + 1Name    Date          COLUMN RESULT----    ----          -------------Bob     11-01-2019          1Bob     11-01-2019          2Bob     11-20-2019          3Mike    12-01-2019          1Mike    12-02-2019          2Mike    12-03-2019          3Steve   01-01-2019          1Steve   01-01-2019          2但無論它是什么日期,它都會增加。感謝您的幫助,我很感激!
查看完整描述

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


查看完整回答
反對 回復 2022-06-28
?
牛魔王的故事

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


查看完整回答
反對 回復 2022-06-28
  • 2 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號