Python 按行筛选数据帧

Python 按行筛选数据帧,python,pandas,filter,dataframe,keyerror,Python,Pandas,Filter,Dataframe,Keyerror,我有一个像这样的数据框 CompanyName User Issue Equipment Issue No TBD Total Customer1 0 0 35 0 35 Customer2 0 0 28 0 28 Customer3 2 3 12 0 17 Customer4 5 1 8 0 14 我想从表中删除Customer1和Customer2。我正在尝试使用 df= df[[c for c in df.co

我有一个像这样的数据框

CompanyName User Issue  Equipment Issue No  TBD Total
Customer1   0   0   35  0   35
Customer2   0   0   28  0   28
Customer3   2   3   12  0   17
Customer4   5   1   8   0   14
我想从表中删除Customer1和Customer2。我正在尝试使用

df= df[[c for c in df.columns if c not in ['Customer1','Customer2']]]

我没有收到任何错误,但是Customer1和Customer2仍然显示在绘图中

df.columns.tolist

Out[85]: <bound method Index.tolist of Index([u'CompanyName', u'User Issue', u'Equipment Issue', u'No', u'TBD'], dtype='object')>

sortedtotal.columns.tolist()
Out[93]: 
['CompanyName',
 'User Issue',
 'Equipment Issue',
 'No',
 'TBD']
df.columns.tolist
出[85]:
sortedtotal.columns.tolist()
出[93]:
[“公司名称”,
“用户问题”,
"设备问题",,
“不”,
“待定”]

尝试重置索引:

df.reset_index()
然后您将获得一个自动递增索引,但您的客户索引将成为一列。详情如下:

之后,用于过滤数据的命令应该可以工作

编辑: 使用此筛选方法:
df=df[~df['Company Name'].isin(['customer1','customer2'])]

这是你的索引吗?如果是这样的话,
df.loc[~df.index.isin(['Customer1','Customer2'])]
应该可以工作,还可以显示
df.columns.tolist()的输出。
我很难相信这就是
df.columns.tolist()的输出。
。它看起来更像是
df.columns.tolist
的输出(没有括号,这意味着方法本身,而不是调用它的结果。)@EdChum如果我重置索引,我就消除了KeyError,但是Customer1和Customer2仍然在数据框中。@DSM你是对的,我忘记了括号这有助于解决KeyError,但它仍然没有过滤元素。尝试这种过滤方法:df=df[~df['Company Name'])。isin(['customer1','customer2'])是的!这很有效,但最后需要一个括号。谢谢!太好了。更新的答案反映了这一点:)
df.columns.tolist

Out[85]: <bound method Index.tolist of Index([u'CompanyName', u'User Issue', u'Equipment Issue', u'No', u'TBD'], dtype='object')>

sortedtotal.columns.tolist()
Out[93]: 
['CompanyName',
 'User Issue',
 'Equipment Issue',
 'No',
 'TBD']
df.reset_index()