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

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

如何通過引用它在熊貓中的日期來提取

如何通過引用它在熊貓中的日期來提取

達令說 2023-04-25 16:58:18
我有 df 喜歡跟隨一個customer  movement      dateA         buy      2019/5/4 A        inquiry   2020/7/1A        cancel    2020/8/1B         buy      2019/6/1B        cancel    2020/8/1我想追查每個客戶movement之前cancel首先,分組依據customerA         buy      2019/5/4 A        inquiry   2020/7/1A        cancel    2020/8/1然后我想得到cancel dateA        cancel    2020/8/1然后,我想previous movement在取消之前得到in 1 year。customer movement dateA        inquiry  2020/7/1A        cancel   2020/8/1在那之后,我想在每個customers所以我想要的結果如下customer movement dateA        inquiry  2020/7/1A        cancel   2020/8/1B        cancel   2020/8/1有什么辦法可以做到這一點?這太復雜了,我無法處理這樣的程序..
查看完整描述

1 回答

?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

首先將列轉換為日期時間并創建僅過濾行的cancel系列DataFrame.set_index

df['date']?=?pd.to_datetime(df['date'])

s?=?df[df['movement'].eq('cancel')].set_index('customer')['date']

然后按Series.map年減去 1 年進行映射,并按indate過濾列的較少值:Series.ltboolean indexing

df = df[df['customer'].map(s.sub(pd.DateOffset(years=1))).lt(df['date'])]

print (df)

? customer movement? ? ? ?date

1? ? ? ? A? inquiry 2020-07-01

2? ? ? ? A? ?cancel 2020-08-01

4? ? ? ? B? ?cancel 2020-08-01


查看完整回答
反對 回復 2023-04-25
  • 1 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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