【问题标题】:using a two-dimensional boolean array as a mask in pandas在熊猫中使用二维布尔数组作为掩码
【发布时间】:2020-05-19 14:42:09
【问题描述】:

在 pandas 中使用布尔系列作为掩码非常方便。

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

这个想法是有一个数据框和一个与数据框相同维度的二维布尔数组,并将布尔数组中所有为真的单元格设置为值 X,同时将所有其他数据单元格保留在数据中框架原封不动。

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

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

【问题讨论】:

  • 你试过了吗?只要arr.shape==df.shapearr 是布尔类型,df.where(arr) 就应该可以工作。

标签: pandas multidimensional-array boolean


【解决方案1】:

创建数据框

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 中选择复杂标准的问题可能会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-17
    • 2021-08-14
    • 2020-12-02
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    相关资源
    最近更新 更多