猿问

标签未包含在轴错误中-Pandas DataFrame

我有一个名为df的数据框,看起来像-


pageno     entity          code         rawentity 

17727425   SAUDI           CBCNTRY      saudi 

17727425   GARRA           DRWRNAME     garra

17727425   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

我只想知道为什么我的方法是错误的,除了这种方法之外,还有什么我可以做的更好的事情了。


我已经搜索了此错误,但无法获得满意的答案。


肥皂起泡泡
浏览 149回答 3
3回答

撒科打诨

正如Gerardo所建议的,使用pd.isin布尔运算符来使用和组合表达式:countrylist = ['SAUDI']codelist = ['DRWRCNTRY', 'RBCNTRY', 'CBCNTRY']df = df[(df['code'].isin(codelist)) & (df['entity'].isin(countrylist))]结果是&nbsp; &nbsp; &nbsp;pageno entity&nbsp; &nbsp; &nbsp;code rawentity0&nbsp; 17727425&nbsp; SAUDI&nbsp; CBCNTRY&nbsp; &nbsp; &nbsp;saudi

慕哥6287543

在处理系列时,可以使用pd.isin。例如,您可以通过执行以下操作来实现:df&nbsp;=&nbsp;df[df['code'].isin(['DRWRCNTRY',&nbsp;'RBCNTRY',&nbsp;'CBCNTRY'])]
随时随地看视频慕课网APP

相关分类

Python
我要回答