Python 根据布尔条件选择行和列
我有一个大约50列>100行的熊猫数据框。我想选择列Python 根据布尔条件选择行和列,python,pandas,dataframe,conditional,Python,Pandas,Dataframe,Conditional,我有一个大约50列>100行的熊猫数据框。我想选择列'col\u x','col\u y'其中'col\u z'
'col\u x'
,'col\u y'
其中'col\u z'
。有没有一种简单的方法可以做到这一点,类似于df[df['col3']
和df['colx','coly']]
但是结合起来了?让我们来分析一下你的问题。你想
df["col_z"] < m
您将如何结合这两种方法来生产熊猫的预期产量?最直接的方法是使用-
loc允许您指定用于选择行的索引标签。例如,如果您有一个数据帧-
col_x col_y
a 1 4
b 2 5
c 3 6
要选择索引a
,和c
,以及col\u x
,您将使用-
df.loc[['a', 'c'], ['col_x']]
col_x
a 1
c 3
或者,通过布尔条件进行选择(如原始问题所述,使用一系列的bool
值),其中col_x
中的所有值都是奇数-
df.loc[(df.col_x % 2).ne(0), ['col_y']]
col_y
a 4
c 6
有关详细信息,df.col_x%2
计算每个值相对于2
的模数。ne(0)
然后将该值与0
进行比较,如果不是,则返回True
(所有奇数都是这样选择的)。下面是这个表达式的结果-
(df.col_x % 2).ne(0)
a True
b False
c True
Name: col_x, dtype: bool
进一步阅读
-
df.loc[['a', 'c'], ['col_x']]
col_x
a 1
c 3
df.loc[(df.col_x % 2).ne(0), ['col_y']]
col_y
a 4
c 6
(df.col_x % 2).ne(0)
a True
b False
c True
Name: col_x, dtype: bool