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

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

如何過濾具有多個 MultiIndex 二級條目的行?

如何過濾具有多個 MultiIndex 二級條目的行?

皈依舞 2023-05-09 16:08:32
我有一個帶有 MultiIndex 的數據框 df。df.columnsIndex(['all', 'month', 'day', 'year'], dtype='object')        all       month day year  match             7   0   10/24/89    10  24  898   0   3/7/86      3   7   86    1   10          NaN NaN 109   0   4/10/71     4   10  7110  0   5/11/85     5   11  85    1   96          NaN NaN 96    2   26          NaN NaN 2611  0   10          NaN NaN 10    1   4/09/75     4   09  75    12  0   8/01/98     8   01  98如何在 MultiIndex 級別 2 中選擇具有 1 個以上條目的行?例如,這里我需要第 8,10 和 11 行。
查看完整描述

1 回答

?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

您可以groupby.transform按第一級索引使用并使用len. 然后獲取True大于len等于 ( ge) 的值(此處為 2)以獲取所需的布爾掩碼并選擇行。


print(df[df.groupby(level=0)['month'].transform(len).ge(2)])

                0  month   day  year

   match                            

8  0       3/7/86    3.0   7.0    86

   1           10    NaN   NaN    10

10 0      5/11/85    5.0  11.0    85

   1           96    NaN   NaN    96

   2           26    NaN   NaN    26

11 0           10    NaN   NaN    10

   1      4/09/75    4.0   9.0    75

在這里,我在 groupby 操作之后使用“月”作為列,但數據框中的任何列都可以使用。


您還可以使用groupby.filter并獲得相同的結果:


print(df.groupby(level=0).filter(lambda x: len(x)>=2))


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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