具有bool值和整数的数据帧的Pandas条件子集

时间:2015-10-17 21:23:19

标签: python pandas conditional subset

我有一个包含三个系列的数据框。 A列包含group_id。 B列包含True或False。列C包含1-n排名(其中n是每个group_id的行数)。

我想为每一行存储此数据帧的子集:

1) Column C == 1
OR
2) Column B == True

以下逻辑将我的旧数据帧行复制到新数据帧中:

new_df = df[df.column_b | df.column_c == 1]

2 个答案:

答案 0 :(得分:2)

IIUC,从样本数据框开始,如:

A,B,C
01,True,1
01,False,2
02,False,1
02,True,2
03,True,1
你可以:

df = df[(df['C']==1) | (df['B']==True)]

返回:

   A      B  C
0  1   True  1
2  2  False  1
3  2   True  2
4  3   True  1

答案 1 :(得分:0)

您有多种过滤方法,性能因数据大小而异[/ p>

In [722]: df[(df['C']==1) | df['B']]
Out[722]:
   A      B  C
0  1   True  1
2  2  False  1
3  2   True  2
4  3   True  1

In [723]: df.query('C==1 or B==True')
Out[723]:
   A      B  C
0  1   True  1
2  2  False  1
3  2   True  2
4  3   True  1

In [724]: df[df.eval('C==1 or B==True')]
Out[724]:
   A      B  C
0  1   True  1
2  2  False  1
3  2   True  2
4  3   True  1