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()