初始化熊猫的所有真实布尔值

时间:2019-10-16 14:24:22

标签: python pandas

我发现自己有时会迭代构建布尔值/掩码,所以类似:

mask = initialize_mask_to_true()
for condition in conditions:
  mask = mask & condition

df_masked = pd.loc[mask, my_cols]

条件可能是单独的布尔掩码或比较之类的列表,例如df[some_col] > someVal 有没有很好的方法来做initialize_mask_to_true()?有时我会做些丑陋的事情:

mask = ~(df.loc[:, df.columns[0]] == np.nan)

之所以有效,是因为something == np.nan始终为假,但感觉有一种更简洁的方法。

2 个答案:

答案 0 :(得分:3)

我为此使用numpy.ones

np.ones(df.shape[0], dtype=np.bool)

答案 1 :(得分:2)

如果必须保留索引:

mask= pd.DataFrame(True,index=df.index,columns=df.columns)

mask= pd.DataFrame(True,index=df.index,columns=[df.columns[0]])