首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >loc和no loc的布尔选择

loc和no loc的布尔选择
EN

Stack Overflow用户
提问于 2017-01-24 20:40:30
回答 2查看 4.4K关注 0票数 1

是否存在以下不同的情况?

代码语言:javascript
复制
dfCombined[col][dfCombined[col].isnull()]
dfCombined[col].loc[dfCombined[col].isnull()]

我检查了ilocix,它们不支持布尔选择吗?

EN

回答 2

Stack Overflow用户

发布于 2017-01-24 20:41:56

我认为如果您需要具有筛选列colboolean indexing,请使用loc

代码语言:javascript
复制
dfCombined.loc[dfCombined[col].isnull(), 'col']

如果需要,可以省略所有列的loc

代码语言:javascript
复制
dfCombined[dfCombined[col].isnull()]

示例:

代码语言:javascript
复制
dfCombined = pd.DataFrame({'col':[1,2,np.nan],
                   'col1':[4,5,6]})

print (dfCombined)
   col  col1
0  1.0     4
1  2.0     5
2  NaN     6

print (dfCombined.loc[dfCombined['col'].isnull(), 'col'])
2   NaN
Name: col, dtype: float64

#select second column (1)
print (dfCombined.ix[dfCombined['col'].isnull(), 1])
2    6
Name: col1, dtype: int64

print (dfCombined.iloc[dfCombined['col'].isnull(), 1])
NotImplementedError: iLocation based boolean indexing on an integer type is not available

print (dfCombined[dfCombined['col'].isnull()])
   col  col1
2  NaN     6

关于你的问题:

这两种方法都适用,但更受欢迎的是用于选择列的ixloc -参见cookbook

代码语言:javascript
复制
print (dfCombined['col'][dfCombined['col'].isnull()])
2   NaN
Name: col, dtype: float64

print (dfCombined['col'].loc[dfCombined['col'].isnull()])
2   NaN
Name: col, dtype: float64
票数 1
EN

Stack Overflow用户

发布于 2018-11-29 00:52:42

在pandas中,df.iloc仅适用于布尔值

示例:

代码语言:javascript
复制
df.iloc[df[‘col’]==False/True] 

其中as df.loc适用于非布尔值

示例:

代码语言:javascript
复制
df.loc[df[‘col’]==values]
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41828486

复制
相关文章

相似问题

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