我正在研究如何计算符合某些条件的特定列的数量,并过滤任何高于1的列.我认为这将需要添加一个额外的列,包括count()
,然后单独的步骤查看count()
是否大于1.最后,删除不必要的count()
列.
对于下面的例子,我只对大于0的colB、colC、colD和colE感兴趣.
我try 过的代码示例如下:
#Step a
filtData['countCol'] = filtData[(filtData['colB']>0) & (filtData['colC']>0) &
(filtData['colD']>0) & (filtData['colE']>0)].count()
#Step b
filtData['countCol'] = filtData[filtData['countCol'] > 1]
#Step c
filtData = filtData.drop(columns=['countCol'])
输入:
colA colB colC colD colE colF
0 1105 0.00 867 3.4 0.00 text1
1 1106 3 3.22 1 3 text2
2 1107 0.5 0 0 1 text3
3 1110 0 23 0 0 text4
4 1019 9 0.0 2 0 text5
5 1267 0 0.0 0 2 text6
输出步骤a:
colA colB colC colD colE colF countCol
0 1105 0.00 867 3.4 0.00 text1 2
1 1106 3 3.22 1 3 text2 4
2 1107 0.5 0 0 1 text3 2
3 1110 0 23 0 0 text4 1
4 1019 9 0.0 2 0 text5 2
5 1267 0 0.0 0 2 text6 1
输出步骤b:
colA colB colC colD colE colF countCol
0 1105 0.00 867 3.4 0.00 text1 2
1 1106 3 3.22 1 3 text2 4
2 1107 0.5 0 0 1 text3 2
4 1019 9 0.0 2 0 text5 2
输出步骤c:
colA colB colC colD colE colF
0 1105 0.00 867 3.4 0.00 text1
1 1106 3 3.22 1 3 text2
2 1107 0.5 0 0 1 text3
4 1019 9 0.0 2 0 text5
如果有一种方法可以在一个步骤中执行这一操作,并且是优雅的(不是一个表达式太高级而无法理解),那将是理想的.我还在学习pandas,所以执行我正在寻找的过滤可能需要在三个子步骤中被打破.