在熊猫中使用布尔系列作为面具非常方便。
想知道,是否以及如何生成二维布尔数组作为掩码,例如where()或mask()函数用于将值分配给由掩码指定的一组单元格。
想法是拥有一个数据框和一个与数据框尺寸相同的二维布尔数组,并将布尔数组中所有为True的单元格设置为值X,同时将所有其他数据单元格保留在数据框中不动摇。
这当然可以通过一堆for循环并行地遍历数据帧和布尔数组来完成,但这似乎不是非常有效或优雅。
非常感谢任何指向适当函数名称或教程的指针。
创建数据框
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可能会有所帮助。