按行过滤数据框

Filtering Dataframe by Row

我有一个看起来像这样的数据框

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

我想从 table 中删除 Customer1 和 Customer2。我正在尝试使用

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

df=df[(~df.isin('Customer2','Customer2'))]

df=df[~df['CompanyName'].str.contains('Customer1')]

我没有收到任何错误,但 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()

然后您将获得一个自动递增索引,但您的客户索引将成为一列。更多信息: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.reset_index.html

之后,您过滤数据的命令应该会起作用。

编辑: 使用这种过滤方法: df = df[~df['Company Name'].isin(['customer1', 'customer2'])]