首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >考虑来自第一个数据帧的两个条件创建第二个数据帧

考虑来自第一个数据帧的两个条件创建第二个数据帧
EN

Stack Overflow用户
提问于 2018-12-06 04:03:22
回答 1查看 25关注 0票数 1

我有一个主DataFrame,并且我发现了一些我不想要的行。我在下面的代码中找到了这些条件:

df.query("group == 'treatment' and landing_page != 'new_page'") 
df.query("landing_page == 'new_page' and group != 'treatment'")

现在,我想要一个考虑整个df df2,除了上面代码中给出的那些行。我在尝试创建这个df2时遇到了困难。有灯吗?

我的实际代码:

df2 = df.query("group == 'treatment' and landing_page == 'new_page'") and df.query("group == 'control' and landing_page == 'old_page'")

我收到此错误:ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-06 04:28:55

query更改为eval,并在索引df时反转掩码。

m1 = df.eval("group == 'treatment' and landing_page != 'new_page'") 
m2 = df.eval("landing_page == 'new_page' and group != 'treatment'")

df_out = df[~(m1 | m2)]

或者,更一般地说,

stmts = [
    "group == 'treatment' and landing_page != 'new_page'",
    "landing_page == 'new_page' and group != 'treatment'"
]

df_out = df[~np.logical_or.reduce([df.eval(stmt) for stmt in stmts])]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53639922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档