我有一個名為 emails_visits 的資料框:
Rep Doctor Date type date_after
0 1 1 2021-01-25 email NaT
1 1 1 2021-05-29 email NaT
2 1 2 2021-03-15 email NaT
3 1 2 2021-04-02 email NaT
4 1 2 2021-04-29 email NaT
30 1 2 2021-06-01 visit 2021-06-01
5 1 3 2021-01-01 email NaT
6 1 3 2021-01-10 email NaT
7 1 3 2021-01-25 email NaT
8 1 3 2021-02-19 email NaT
9 1 4 2021-03-03 email NaT
我需要date_after根據列Rep和中的值從下到上填寫列Doctor。if values row(x-1) Repand Doctor ==values row(x) Repand Doctor ==then date_afterin row(x-1) 應該 == to date_afterin row(x)
下面的期望結果示例
Rep Doctor Date type date_after
0 1 1 2021-01-25 email NaT
1 1 1 2021-05-29 email NaT
2 1 2 2021-03-15 email 2021-06-01
3 1 2 2021-04-02 email 2021-06-01
4 1 2 2021-04-29 email 2021-06-01
30 1 2 2021-06-01 visit 2021-06-01
5 1 3 2021-01-01 email NaT
6 1 3 2021-01-10 email NaT
7 1 3 2021-01-25 email NaT
8 1 3 2021-02-19 email NaT
9 1 4 2021-03-03 email NaT
uj5u.com熱心網友回復:
使用groupby_bfill:
df['date_after'] = df.groupby(['Rep', 'Doctor'])['date_after'].bfill()
print(df)
# Output
Rep Doctor Date type date_after
0 1 1 2021-01-25 email NaT
1 1 1 2021-05-29 email NaT
2 1 2 2021-03-15 email 2021-06-01
3 1 2 2021-04-02 email 2021-06-01
4 1 2 2021-04-29 email 2021-06-01
30 1 2 2021-06-01 visit 2021-06-01
5 1 3 2021-01-01 email NaT
6 1 3 2021-01-10 email NaT
7 1 3 2021-01-25 email NaT
8 1 3 2021-02-19 email NaT
9 1 4 2021-03-03 email NaT
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/409850.html
標籤:
上一篇:根據資料框中另一列的值創建新列
