所以我根据列值删除行。我的 df 包含我正在过滤的两个特定列:['排除'、'丢失标志']。两列都包含二进制值。我通过以下方式删除了“排除”为 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')
来自docs :
>>> 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 - 根据列值删除行时 'column name' 上的语法无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59633525/