首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >初始化Pandas的全真布尔索引

初始化Pandas的全真布尔索引
EN

Stack Overflow用户
提问于 2019-10-16 22:24:22
回答 2查看 1.2K关注 0票数 2

我发现自己有时会迭代地构建一个布尔值/掩码,比如:

代码语言:javascript
复制
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()的好方法?有时我会做一些让人觉得丑陋的事情,比如:

代码语言:javascript
复制
mask = ~(df.loc[:, df.columns[0]] == np.nan)

这之所以有效,是因为something == np.nan永远是假的,但它感觉有一种更干净的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-16 23:04:08

如果必须保留索引:

代码语言:javascript
复制
mask= pd.DataFrame(True,index=df.index,columns=df.columns)

代码语言:javascript
复制
mask= pd.DataFrame(True,index=df.index,columns=[df.columns[0]])
票数 5
EN

Stack Overflow用户

发布于 2019-10-16 22:26:39

我使用numpy.ones实现这一点:

代码语言:javascript
复制
np.ones(df.shape[0], dtype=np.bool)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58415637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档