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

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

標簽未包含在軸錯誤中-Pandas DataFrame

標簽未包含在軸錯誤中-Pandas DataFrame

肥皂起泡泡 2021-04-20 13:15:18
我有一個名為df的數據框,看起來像-pageno     entity          code         rawentity 17727425   SAUDI           CBCNTRY      saudi 17727425   GARRA           DRWRNAME     garra17727425   PO BOX          RBCNTRY      po box 17727425   NEW ZEALAND     DRWRCNTRY    new zealand我還有一個包含國家名稱的國家列表,它是'list'類型的。我試圖僅保留那些代碼為-CBCNTRY或RBCNTRY或DRWRCNTRY的值,并且該實體應位于countrylist中。我寫的代碼是-        for row in df.itertuples():            if(row.code in ['DRWRCNTRY', 'RBCNTRY', 'CBCNTRY']):                if(row.entity not in countrylist):                    df.drop((row.index), inplace=True)但我收到以下錯誤-Error is: labels [<built-in method index of Pandas object at 0x0000020A1BCE4EB8>] not contained in axis我只想知道為什么我的方法是錯誤的,除了這種方法之外,還有什么我可以做的更好的事情了。我已經搜索了此錯誤,但無法獲得滿意的答案。
查看完整描述

3 回答

?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

正如Gerardo所建議的,使用pd.isin布爾運算符來使用和組合表達式:


countrylist = ['SAUDI']

codelist = ['DRWRCNTRY', 'RBCNTRY', 'CBCNTRY']

df = df[(df['code'].isin(codelist)) & (df['entity'].isin(countrylist))]

結果是


     pageno entity     code rawentity

0  17727425  SAUDI  CBCNTRY     saudi


查看完整回答
反對 回復 2021-04-27
?
慕哥6287543

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

在處理系列時,可以使用pd.isin。例如,您可以通過執行以下操作來實現:

df = df[df['code'].isin(['DRWRCNTRY', 'RBCNTRY', 'CBCNTRY'])]


查看完整回答
反對 回復 2021-04-27
  • 3 回答
  • 0 關注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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