如何将值设置为布尔过滤数据帧列的行

2024-09-30 20:19:18 发布

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

我试图为pandas数据帧的过滤行设置“FreeSec”列的值为True。代码如下:

data[data["Brand"].isin(group_clients)].FreeSec = True

但是,当我检查这些值时,它们仍然被设置为False。在

^{pr2}$

我错过了什么?在


Tags: 数据代码falsetruepandasdatagroupclients
2条回答

它的工作方式与此相反:

data["FreeSec"][data["Brand"].isin(group_clients)] = True

我不是熊猫方面的专家,所以得检查一下它为什么会这样工作。在

您应该使用loc在不链接的情况下执行此操作,这将保证分配有效:

data.loc[data["Brand"].isin(group_clients), "FreeSec"] = True

loc中的赋值被重写,因此它是否实际是a view or a copy的实现细节并不重要,如果你这样链接,那么就要避免/非常小心。

相关问题 更多 >