繁体   English   中英

在 pandas 中创建一个基于其他两个布尔列的新列

[英]Create a new column in pandas that is based on two other columns of bools

我有一个 dataframe df,它有两列由布尔值组成。

df['trial']
df['subscribe']

我想创建一个新列df['without_trial']df['subscribe']为真且df['trial']为假时为真,否则为假。

我怎样才能做到这一点? 我尝试过使用df.loc ,但它从来没有给我正确的值。

如果您有纯 boolean 列作为输入,请使用 AND ( & ) 和 NOT ( ~ ) 运算符:

df['without_trial'] = df['trial'] & ~df['subscribe']

如果您可能有混合值,请使用eq (等于)和ne (不等于):

df['without_trial'] = (df['trial'].eq(True)
                     & df['subscribe'].ne(True)
                      )

您可以使用运算符~pandas中)和& (AND)直接定义新列:

df['without_trial'] = df['subscribe'] & ~df['trial']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM