我希望使用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
尝试示例
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'")
在大多数情况下接收到错误
ImportError: 'numexpr' not found. Cannot use engine='numexpr' for query/eval if 'numexpr' is not installed
如果我正确理解了你的问题,也许你可以使用如下过滤器:
返回:
从the documentation-
^{} 接受要删除的行的
index
,而不是条件。因此你很可能需要像-请注意,这将删除符合条件的行,因此结果将是不符合条件的行,如果您希望相反,可以在条件之前使用
~
运算符来否定它。但这似乎有点过头了,只使用布尔索引来获取所需的行会更容易(如另一个答案所示)。
演示-
相关问题 更多 >
编程相关推荐