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

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

Python Pandas復雜分組

Python Pandas復雜分組

一只名叫tom的貓 2021-05-14 18:15:42
我有一個數據框,如下所示:     Name    Status    Date1    Joe     In    1/2/20032    Pete    Out   1/2/20033    Mary    In    1/2/2003? ? ?4    Joe     In    3/4/20045    Pete    In    3/5/20046    Mary    Out   4/8/2004如果我執行以下分組操作:df.groupby(["Name", "Status"]).last()我得到以下內容:Joe    In    3/4/2004Pete   In    3/5/2004       Out   1/2/2003Mary   In    1/2/2003       Out   4/8/2004請注意,Joe沒有“ out”分組結果,因為在數據框中沒有Joe的“ out”值。我希望能夠從數據框或隨后的分組依據中選擇在整個日期范圍內僅具有“進入”狀態或僅具有“離開”狀態的人員,而不是同時具有“進入”和“離開”的人員特定的日期范圍。我很困惑如何解決這個問題。如果groupby結果給我類似的信息,我可以繼續進行以下操作:Joe    Out   np. Nan但事實并非如此。哦,我最后一次進行分組比對是因為我需要獲得人們離開Pete和Mary之類的同時處于“進入”和“離開”狀態的最后日期。但是我需要不同對待喬-他在此期間僅具有“處于”狀態而沒有“處于”狀態的人。任何指導表示贊賞。
查看完整描述

1 回答

?
達令說

TA貢獻1821條經驗 獲得超6個贊

不知道你想要什么。但是您可以嘗試重新索引



x = df.groupby(['Name', 'Status']).last()



Date

Name    Status  

Joe     In  3/4/2004

Mary    In  1/2/2003

        Out 4/8/2004

Pete    In  3/5/2004

        Out 1/2/2003

你可以做到


size = x.index.levels[0].size

f = np.repeat(np.arange(size), 2)

s = [0,1] * size


x.reindex(pd.MultiIndex(levels=x.index.levels, labels=[f, s]))


                 Date

Name    Status  

Joe     In       3/4/2004

        Out      NaN

Mary    In       1/2/2003

        Out      4/8/2004

Pete    In       3/5/2004

        Out      1/2/2003


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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