python - 基于列值删除行时“列名”的语法无效
问题描述
所以我根据列值删除行。我的 df 包含两个我正在过滤的特定列:['Exclude'、'Lost Flag']。两列都包含二进制值。我通过以下方式删除了“排除”为 1 的所有行:
df = df[df.Exclude !=1]
一切都很好。然而,当我试图用“Lost Flag”做同样的事情时:
df = df[df.Lost Flag !=1]
我在列名上得到 SyntaxError。我已经三次检查了列名,尝试了下划线,没有空格,并尝试使用 `` 转义空格。然后我尝试了 pd.query:
df = df.query('Lost Flag !=1')
我得到了同样的语法错误。我觉得我错过了一些明显的东西。
解决方案
尝试使用 ` 表示空格:
df.query('`Lost Flag`!=1')
来自文档:
>>> df = pd.DataFrame({'A': range(1, 6), ... 'B': range(10, 0, -2), ... 'C C': range(10, 5, -1)}) >>> df A B C C 0 1 10 10 1 2 8 9 2 3 6 8 3 4 4 7 4 5 2 6 For columns with spaces in their name, you can use backtick quoting. >>> df.query('B == `C C`') A B C C 0 1 10 10
推荐阅读
- python - 如何将井字游戏推广到大于 3x3 的棋盘?
- python - Docker SDK python - 关于容器生成和 cpu_load 的通知
- javascript - Bootstrap 双列表框 POST Selected
- php - FPDF:旋转输出
- javascript - 如何更新内部嵌套对象属性
- mongodb - 如何从 MongoDb 中删除这些嵌入的文档?
- c++ - PCL 未使用 vcpkg 正确安装
- python - 使用 Spyder 下载 sklearn:pip 打印错误语法,并且找不到目录
- django - 获取 PositiveSmallIntegerField Django 字段的最大 **Allowed** 值
- angular - “字符串”类型的参数不能分配给“布尔”类型的参数