Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.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 如何将条件应用于iloc_Python_Pandas_Dataframe - Fatal编程技术网

Python 如何将条件应用于iloc

Python 如何将条件应用于iloc,python,pandas,dataframe,Python,Pandas,Dataframe,我使用ilocas从数据帧中选择列2-end d=c.iloc[:,2:] 现在如何将条件应用于此选择?例如,如果column1==1您可以使用if need filter first column select by position,:表示在此处选择所有行: c[c.iloc[:, 0] == 1] 样本: c = pd.DataFrame({'A':list('abcdef'), 'B':[4,5,4,5,5,4],

我使用
iloc
as从数据帧中选择列
2-end

d=c.iloc[:,2:]
现在如何将条件应用于此选择?例如,如果
column1==1

您可以使用if need filter first column select by position,
表示在此处选择所有行:

c[c.iloc[:, 0] == 1]
样本

c = pd.DataFrame({'A':list('abcdef'),
                   'B':[4,5,4,5,5,4],
                   'C':[7,8,9,4,2,3],
                   'D':[1,3,5,7,1,0],
                   'E':[5,3,6,9,2,4],
                   'F':list('aaabbb')})

print (c)
   A  B  C  D  E  F
0  a  4  7  1  5  a
1  b  5  8  3  3  a
2  c  4  9  5  6  a
3  d  5  4  7  9  b
4  e  5  2  1  2  b
5  f  4  3  0  4  b

df = c[c.iloc[:, 3] == 1]
print (df)
   A  B  C  D  E  F
0  a  4  7  1  5  a
4  e  5  2  1  2  b

这被称为混合索引,因为您希望按布尔结果在行中进行索引,并按列中的位置进行索引。我会使用
loc
来利用行的布尔索引。但这意味着您需要列切片的列名值

d.loc[d.column1 == 1, d.columns[2:]]
如果列名不唯一,则可以使用可怕的链式索引

d.loc[d.column1 == 1].iloc[:, 2:]
更直观的方法是在之后使用
查询

d.iloc[:, 2:].query('column1 == 1')

你认为
d[d.column1==1]
?你认为呢?这似乎是重复的。@jezrael你是说
c.loc[c[1]==1]
?它提供了
KeyError:1
谢谢,各种方法的大量集合!我学到了很多。