Python,布尔索引:如何使用“选择所有行”;“真的”;价值

Python,布尔索引:如何使用“选择所有行”;“真的”;价值,python,indexing,boolean,Python,Indexing,Boolean,假设我需要一个过滤器的“启动桥”。如何将列中所有值的布尔索引设置为“True” 最简单的例子: ->显而易见。如果我有一个df的形状(2,2),我想得到一个布尔索引(2,1)=真。当然,这两行是可变的,列的数量也是可变的 import pandas as pd d = {'col1': [1, 2], 'col2': [3, 4]} df = pd.DataFrame(data=d) 现在我有一个条件,比如“col1中的值必须是1”,所以我这样做: boolean_index = df.loc

假设我需要一个过滤器的“启动桥”。如何将列中所有值的布尔索引设置为“True”

最简单的例子: ->显而易见。如果我有一个df的形状(2,2),我想得到一个布尔索引(2,1)=真。当然,这两行是可变的,列的数量也是可变的

import pandas as pd
d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)
现在我有一个条件,比如“col1中的值必须是1”,所以我这样做:

boolean_index = df.loc[:,'col1']==1
返回

0     True
1    False
Name: col1, dtype: bool
但我想要的是不指定任何条件(例如,不指定boolean_index=df.loc[:,'col1']==1)并返回

0     True
1     True
Name: col1, dtype: bool

我可能只是太傻了才明白?还是没人问过这个问题?

不完全清楚你在追求什么,但要得到一列你可以过滤的“真”:

df = pd.DataFrame({'Col' : ['Something'] * 300})
df['FilterCol'] = df.Col.apply(lambda x : x == 'Something')
然后:

归还一切。将lambda函数中的'Something'更改为'Nothing'(或者其他任何内容,很明显),则该函数为空

然后,您可以根据要过滤的内容更改lambda函数

(编辑-基于现在讨论的示例-添加:

df.apply(lambda x : True)
到代码末尾,以获取您要查找的答案。)

(编辑2-来自新的最小示例:

import pandas as pd
d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)
df.apply(lambda x : True, axis=1)
输出为:

0    True
1    True
dtype: bool
它没有像您的示例中那样说明名称和数据类型,但这是我所知道的

(最终编辑(希望:))


输出我认为您正在寻找的答案。)

有趣的是,人们对这样一个显而易见的问题投了反对票。但是是的,这里有一个最简单的例子:导入熊猫作为pd d={'col1':[1,2],'col2':[3,4]}df=pd.DataFrame(data=d)布尔索引应该是例如index:[True,True],因为还没有添加任何选择。“所有值的布尔索引”是每一行都设置为True(选择是)的有趣方法。但是,返回包含4行而不是两行:(pd.Series([True]*df.size,name='col1')0真1真2真3真名称:col1,dtype:boolYes,我的错。您肯定知道如何获取
df
中的行数并修复它。pd.Series([True]*df.shape[0],name='col1')闻起来有点……不是吗?
0    True
1    True
dtype: bool
df.col1.apply(lambda x : True)