2017-02-16 54 views
1

我有这个数据帧:如何根据列实现的标准删除行?

COL_1 COL_2 COL_3 COL_4 NUM_1 NUM_2 NUM_3 NUM_4 
NaN  AD  MD  TR  0  0  1  1 
AD  TT  MD  TR  1  0  1  1 
AD  TT  MD  NaN  0  0  1  0 

我要删除那些有NUM_等于1 AD之后列索引行。例如,第一行中的列索引AD等于2(COL_2)。所以,NUM_3NUM_2之后的下一个)等于1.它意味着该行应该被删除。

结果:

COL_1 COL_2 COL_3 COL_4 NUM_1 NUM_2 NUM_3 NUM_4 
AD  TT  MD  TR  1  0  1  1 
AD  TT  MD  NaN  0  0  1  0 
+2

貌似@Psidom已经给了这个工作很好的破解,但我认为更大的问题是,这看起来并不像一个有效的结构存储您的数据。如果你有其他类似的操作你会想要做,我会考虑重组。 –

+0

'cols = [{'AD':2,'MD':3,'TR':4},...]'和'nums = [[0,0,1,1],... ]' –

回答

4

假设COL*列数与NUM*列一样,你可以试试下面的方法矢量:

​​

enter image description here

+0

这很美!感谢您如此好地展示熊猫! –

+0

是的,“COL *”列的数量等于“NUM *”列。谢谢! – user7379562

+0

伟大的@Psidom谢谢你的解决方案 –