按行过滤数据框
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'])]
我有一个看起来像这样的数据框
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'])]