Python 如何按索引值和任意列中的值搜索数据帧

Python 如何按索引值和任意列中的值搜索数据帧,python,pandas,selection,Python,Pandas,Selection,我试图选择从文件中读取的数据,由值1和0表示。我希望能够从值列表中选择行,同时为每个选定行的值为1的任何列进行选择。为了使它更复杂,我还想从值列表中选择行,其中列中这些行的所有值都为零。这可能吗?最终,如果熊猫数据框架之外的另一种方法能更好地工作,我愿意尝试 说清楚一点,任何栏目都有可能被选中,我不知道提前选哪一列 谢谢 您可以使用all()any()ix[]运算符。查看,或了解更多详细信息 import pandas as pd import random import numpy as np

我试图选择从文件中读取的数据,由值1和0表示。我希望能够从值列表中选择行,同时为每个选定行的值为1的任何列进行选择。为了使它更复杂,我还想从值列表中选择行,其中列中这些行的所有值都为零。这可能吗?最终,如果熊猫数据框架之外的另一种方法能更好地工作,我愿意尝试

说清楚一点,任何栏目都有可能被选中,我不知道提前选哪一列

谢谢

您可以使用
all()
any()
ix[]
运算符。查看,或了解更多详细信息

import pandas as pd
import random
import numpy as np


#created a dump data as you didn't provide one
df = pd.DataFrame({'col1':  [random.getrandbits(1) for i in range(10)], 'col2':  [random.getrandbits(1) for i in range(10)], 'col3': [1]*10})

#You can select the value directly by using ix[] operator
row_indexer,column_indexer=3,1
print df.ix[row_indexer,column_indexer]

#You can filter the data of a specific column this way
print df[df['col1']==1]
print df[df['col2']==1]

#df.iloc to select by postion .loc to  Selection by Label

#want to be able to select rows from a list of values and at the same time select for any column in which each of the selected rows has a value of one.
print df[(df.T == 1).any()]
# if you wanna filter a specific columns with a condition on rows
print df[(df['col1']==1)|(df['col2']==1)]
#To make it more complex I also want to select rows from a list of values where all values in a column for these rows is zero.
print df[(df.T == 0).all()]
# if you wanna filter a specific columns with a condition on rows
print df[(df['col1']==0) & (df['col2']==0)]

您能提供一些示例数据以及所需的输出吗?我想我们是在鼓励人们使用
.loc
.iloc
而不是
.ix
,由于
.ix
难以解释语义,因此在0.11中引入了Good point@DSM.loc/.iloc,并鼓励将其用于用户索引选择。