使用包含空格的列名称或使用包含空格的列名称的drop方法查询Pandas DataFrame

iNo*_*oob 7 python pandas

我希望使用pandas基于列名称(包含空格)和单元格值删除行.我已经尝试了各种方法来实现这一点(drop和query方法),但由于名称中的空格,我似乎失败了.有没有办法使用其中有空格的名称查询数据,或者我是否需要先清理所有空格?

数据以csv文件的形式

Date,"price","Sale Item"
2012-06-11,1600.20,item1
2012-06-12,1610.02,item2
2012-06-13,1618.07,item3
2012-06-14,1624.40,item4
2012-06-15,1626.15,item5
2012-06-16,1626.15,item6
2012-06-17,1626.15,item7
Run Code Online (Sandbox Code Playgroud)

尝试例子

df.drop(['Sale Item'] != 'Item1')
df.drop('Sale Item' != 'Item1')
df.drop("'Sale Item'] != 'Item1'")

df.query('Sale Item' != 'Item1')
df.query(['Sale Item'] != 'Item1')
df.query("'Sale Item'] != 'Item1'")
Run Code Online (Sandbox Code Playgroud)

大多数情况下收到错误

ImportError: 'numexpr' not found. Cannot use engine='numexpr' for query/eval if 'numexpr' is not installed
Run Code Online (Sandbox Code Playgroud)

Fab*_*nna 8

如果我正确理解了您的问题,也许您只需应用以下过滤器:

df = df[df['Sale Item'] != 'item1']
Run Code Online (Sandbox Code Playgroud)

返回:

         Date    price Sale Item
1  2012-06-12  1610.02     item2
2  2012-06-13  1618.07     item3
3  2012-06-14  1624.40     item4
4  2012-06-15  1626.15     item5
5  2012-06-16  1626.15     item6
6  2012-06-17  1626.15     item7
Run Code Online (Sandbox Code Playgroud)