Python 如果所有值​;在超出特定范围的列中,删除该列

Python 如果所有值​;在超出特定范围的列中,删除该列,python,pandas,Python,Pandas,数据样本: x Y 12 132 15 42 14 51 18 41 29 100 21 132 你的总体逻辑是正确的;问题在于运算符优先级。按位运算的优先级高于“大于”,因此表达式与您的想法不同 你确实正确地应用了德莫根定理;只需通过使用括号强制使用所需的运算符优先级来修复表达式: df.loc[:, ((df > 9) & (df < 40)).any(axis=0)] df.loc[:,((df>9)和(df

数据样本:

x Y 12 132 15 42 14 51 18 41 29 100 21 132
你的总体逻辑是正确的;问题在于运算符优先级。按位运算的优先级高于“大于”,因此表达式与您的想法不同

你确实正确地应用了德莫根定理;只需通过使用括号强制使用所需的运算符优先级来修复表达式:

df.loc[:, ((df > 9) & (df < 40)).any(axis=0)]
df.loc[:,((df>9)和(df<40)).any(轴=0)]

请澄清您试图做什么。在两个地方,删除的要求是列中的所有值必须超出范围。您的代码似乎也试图以这种方式进行筛选,但您的数据显示,
y
列应该保留,因为只有一个值(21)在范围内。@Prune抱歉。我输入了一个错误的值。编辑的问题。除了Ch3steR的答案,这个解决方案也很有效。谢谢你,你试过之后发生了什么?当您尝试使用原始(错误)数据时发生了什么?我的坏操作更改了示例数据。是的——给定的数据仍然不是最好的,因为它不能区分“全部”和“任何”。如果我们得到一个清晰的问题陈述,并且您的答案是正确的(即使需要全部/任何更改),我计划删除我的,因为这是多余的。@Prune否,我回答错了,我应该是要删除的人。是的,这一切都是为了社区,社区给了我太多的帮助。