应用多个布尔掩码以使用pandas设置列中的值的有效方法

2024-09-27 07:24:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有几个表达式,它们选择数据帧(df)中的某些行,并返回多个布尔数组和掩码(如果愿意)。我想向这个数据框添加一个新的列,并基于这些掩码用普通整数(“成员身份”指示符)填充它。在最直接的方法中,我将使用以下代码:

df.assign(membership=3)
df[mask1].membership = 0
df[mask2].membership = 1
df[mask3].membership = 2

这将生成一个列(df["membership"]),如下所示:

^{pr2}$

掩码由函数创建(使用数据帧中的其他列创建输出)作为字典,如下所示:

maskDict = {0:mask1, 1:mask2, 2:mask3}

其中mask(1..3)是包含[True,False,...]等大小的数组

我知道可能不需要改进代码。但是,当比较更多的条件时,我会在字典中得到更多的布尔数组。在

将该功能应用于数据帧并设置这些值的就地解决方案也将得到赞赏。在


Tags: 数据方法代码df字典表达式身份成员

热门问题