Python 如何获取一组列等于表中给定值的行?
我有一个包含许多列的数据框架(大约1000列)。 给定一组值为0或1的列(大约10),我想选择前面提到的一组列中有1的所有行 玩具的例子。我的数据帧是这样的: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 哪种方法最有效 谢
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)])