gpt4 book ai didi

python - 查找两列合计不等于预定值的行

转载 作者:行者123 更新时间:2023-12-01 09:05:10 25 4
gpt4 key购买 nike

我有一个数据框,我正在尝试查找其中两列不匹配的行。

例如,column:landing_page 可以等于 new_pageold_pagecolumn:group 可以等于 >控制治疗。目前我使用

no_line_up = df.query('group =治疗和landing_page = old_page或group =控制和landing_page = new_page')

我正在尝试查找 new_pagetreatment 不匹配的行。

但它会抛出错误。这样做的正确方法是什么?

最佳答案

pd.DataFrame.query您仍然需要使用相同的基本运算符,例如使用 == 测试相等性并使用括号分隔条件:

df = pd.DataFrame({'group': ['treatment', 'control', 'hello'],
'landing_page': ['old_page', 'new_page', 'test']})

res = df.query('(group == "treatment" and landing_page == "old_page") \
or (group == "control" and landing_page == "new_page")')

print(res)

group landing_page
0 treatment old_page
1 control new_page

更具可读性的是组合 bool 掩码并使用 pd.DataFrame.loc :

m1 = (df['group'] == 'treatment') & (df['landing_page'] == 'old_page')
m2 = (df['group'] == 'control') & (df['landing_page'] == 'new_page')

res = df.loc[m1 & m2]

关于python - 查找两列合计不等于预定值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52123199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com