【发布时间】:2020-12-14 14:40:43
【问题描述】:
这是我的第一篇文章,所以请耐心等待... 假设我有这个 pandas 数据框(这是我在这里找到的示例数据框 How do I use within / in operator in a Pandas DataFrame?) dataframe
好的,现在假设我想更新这个数据框,这样我就没有月份列对应于 9 月的任何行。 这是我一直在使用的代码:
df[df.Month != '0']
它看起来像它的工作原理,但我收到了这个警告:
FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
return op(a, b)
我查看了该网站上发布的其他 FutureWarnings,但大多数都是在人们使用 numpy 时发生的。我已经导入了 numpy,但我没有使用它(或者至少我认为我没有......)。 最重要的是,我不仅收到了这个警告,而且似乎它没有工作,之后我仍然在数据框中保留了 9 月的行。
所以,总而言之,我的问题是如何根据月份值删除这些行?为什么我会收到此警告? 注意,我也试过了
df = df[df.Month != '0']
因为我认为这可能是问题所在,但这也行不通。 有什么想法吗?
注意: 我试着去掉引号,如下所示:
df[df.Month != 0]
这停止了警告,但它仍然无法正常工作并且行没有被删除。
【问题讨论】:
-
你正在使用 NumPy,因为 Pandas 是建立在它之上的。
-
为什么要将
df.Month与字符串'0'进行比较?您的Month列实际上是否包含字符串?字符串'0'真的代表九月吗? -
请提供minimal reproducible example,以及整个错误输出。
-
@user2357112supportsminoca 很抱歉,你说得对,这是一个错字,我打算写 9。我很抱歉。尽管如此,它仍然无法正常工作,并且行仍然存在。