根据布尔表达式过滤 DataFrame 时出错

发布于 2025-01-16 17:16:32 字数 327 浏览 0 评论 0原文

我试图根据以下表达式过滤我的 DataFrame:

df = df[not(df['var1'] == (1 or 2 or 3) and df['var2'].isnull())]本质

上,我想保留数据帧,不包含 var1 值为 1、2 或 3 的行,并且 var2 没有输入。但是,我得到以下返回值:

ValueError: Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

我不知道该使用哪一个以及何时使用其中几个他们返回一个空的 DataFrame。我该如何解决这个问题?

I am trying to filter my DataFrame based on the following expression:

df = df[not(df['var1'] == (1 or 2 or 3) and df['var2'].isnull())]

Essentially, I would like to keep the dataframe without the rows where var1 has a value of 1, 2 or 3 and there is no input for var2. However, I get the following return:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

I don't know which one to use and when I use a couple of them they return an empty DataFrame. How can I solve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文