我有一個數據框,如下所示: 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
添加回答
舉報
0/150
提交
取消