按行过滤Dataframe

时间:2015-07-13 15:49:25

标签: 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.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']

1 个答案:

答案 0 :(得分:2)

尝试重置索引:

df.reset_index()

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

之后,过滤数据的命令应该有效。

编辑: 使用此过滤方法: df = df [~df ['公司名称'] .isin(['customer1','customer2'])]