Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获取一组列等于表中给定值的行?_Python_Python 3.x_Pandas - Fatal编程技术网

Python 如何获取一组列等于表中给定值的行?

Python 如何获取一组列等于表中给定值的行?,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个包含许多列的数据框架(大约1000列)。 给定一组值为0或1的列(大约10),我想选择前面提到的一组列中有1的所有行 玩具的例子。我的数据帧是这样的: c1,c2,c3,c4,c5 'a',1,1,0,1 'b',0,1,0,0 'c',0,0,1,1 'd',0,1,0,0 'e',1,0,0,1 df.loc[df['c2'] == 1 & df['c5'] == 1] 我想得到列c2和c5等于1的行: 'a',1,1,0,1 'e',1,0,0,1 哪种方法最有效 谢

我有一个包含许多列的数据框架(大约1000列)。 给定一组值为0或1的列(大约10),我想选择前面提到的一组列中有1的所有行

玩具的例子。我的数据帧是这样的:

c1,c2,c3,c4,c5
'a',1,1,0,1
'b',0,1,0,0
'c',0,0,1,1
'd',0,1,0,0
'e',1,0,0,1
df.loc[df['c2'] == 1 & df['c5'] == 1]
我想得到列c2和c5等于1的行:

'a',1,1,0,1
'e',1,0,0,1
哪种方法最有效


谢谢

你能试试这样做吗:

c1,c2,c3,c4,c5
'a',1,1,0,1
'b',0,1,0,0
'c',0,0,1,1
'd',0,1,0,0
'e',1,0,0,1
df.loc[df['c2'] == 1 & df['c5'] == 1]

对于多列
cols

In [1277]: cols = ['c2', 'c5']

In [1278]: df[(df[cols] == 1).all(1)]
Out[1278]:
    c1  c2  c3  c4  c5
0  'a'   1   1   0   1
4  'e'   1   0   0   1
或者

或者


是的,但我正在尝试创建一个函数,所以我需要一个更通用的解决方案。没有什么可以阻止您将“c2”和“c5”以及目标作为变量。您已经具备了将其转换为函数所需的一切
import pandas as pd

frame = pd.DataFrame([
['a',1,1,0,1],
['b',0,1,0,0],
['c',0,0,1,1],
['d',0,1,0,0],
['e',1,0,0,1]], columns='c1,c2,c3,c4,c5'.split(','))

print(frame.loc[(frame['c2'] == 1) & (frame['c5'] == 1)])