使用二维布尔数组作为熊猫的遮罩

问题描述 投票:0回答:1

在熊猫中使用布尔系列作为面具非常方便。

想知道,是否以及如何生成二维布尔数组作为掩码,例如where()或mask()函数用于将值分配给由掩码指定的一组单元格。

想法是拥有一个数据框和一个与数据框尺寸相同的二维布尔数组,并将布尔数组中所有为True的单元格设置为值X,同时将所有其他数据单元格保留在数据框中不动摇。

这当然可以通过一堆for循环并行地遍历数据帧和布尔数组来完成,但这似乎不是非常有效或优雅。

非常感谢任何指向适当函数名称或教程的指针。

pandas multidimensional-array boolean
1个回答
0
投票

创建数据框

d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)

创建布尔蒙版数据框

m = {'col1': [True, True], 'col2': [True, True]} 
df_mask = pd.DataFrame(data=m)  

基于布尔掩码创建新的DataFrame,在这种情况下,它将与原始DataFrame相同。

masked_df = df[df_mask]

[This有关从pandas中选择复杂条件的问题。DataFrame可能会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.