Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.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_Pandas - Fatal编程技术网

使用Python筛选数据帧

使用Python筛选数据帧,python,pandas,Python,Pandas,我有一个研究结果的数据框架,我想根据四个相同的值进行过滤 Trial 1 , Trial 2 , Trial 3 , Trail 4, Pass Pass Pass Pass Pass Fail Pass Pass Pass Pass Fail Fail 我尝试过使用语法Df.trail1==Df.trail2,如果我尝试筛选试验1和2的一致结果,但如果我想筛选所有试验的一致结果,我使用 (df.t

我有一个研究结果的数据框架,我想根据四个相同的值进行过滤

Trial 1 , Trial 2 , Trial 3 , Trail 4,
Pass      Pass      Pass      Pass 
Pass      Fail      Pass      Pass 
Pass      Pass      Fail      Fail 
我尝试过使用语法
Df.trail1==Df.trail2
,如果我尝试筛选试验1和2的一致结果,但如果我想筛选所有试验的一致结果,我使用
(df.trial1==df.trial2)和(df.trial3==df.trail4)
它确实进行过滤,但过滤通过和失败是一致的。我只想使用相同的语法(简单代码)在所有四个测试中过滤一致的结果

感谢您在advance中的帮助,如果每行都有唯一数量的值,请使用该测试,但如果数据帧较大,则解决方案会很慢:

cols = ['Trial 1', 'Trial 2', 'Trial 3', 'Trail 4']

mask = df[cols].nunique(axis=1) == 1
print (mask)
0     True
1    False
2    False
dtype: bool
或测试,如果每列的第一列具有相同的值,则使用和:

详细信息

print (df[cols].eq(df[cols[0]], axis=0))
   Trial 1  Trial 2  Trial 3  Trail 4
0     True     True     True     True
1     True    False     True     True
2     True     True    False    False

我不确定这是否是最有效的方法,但是检查
(df.trial1==df.trial2)&(df.trial2==df.trial3)&(df.trial3==df.trail4)
怎么样呢?谢谢,唯一的问题是,实际的df有很多其他内容,我只包含了我感兴趣的专栏in@NicolaHodge-答案已编辑,使用列名称列表进行测试,这里称为
cols
print (df[cols].eq(df[cols[0]], axis=0))
   Trial 1  Trial 2  Trial 3  Trail 4
0     True     True     True     True
1     True    False     True     True
2     True     True    False    False