行无法正确删除

时间:2018-07-14 09:14:34

标签: python pandas

我正在尝试删除值Rating等于NaN并且单sum的{​​{1}}是columns的行。等级包含<50范围内的整数值。这是我删除它们的代码。

[1,5]

但是当我打印数据框时,我仍然可以看到bow = bow.loc[~(bow['Rating'] < 1), ~(bow.sum(0) < 50)] 评级。 NaN部分正确执行其工作。

非常感谢您的帮助!

enter image description here


编辑:

这是sum的创建方式:

bow

1 个答案:

答案 0 :(得分:1)

我认为需要通过notna检查不丢失的值:

bow = pd.DataFrame({'Rating':[4,5,np.nan,5,5,np.nan],
                   'C':[7,8,9,4,2,3],
                   'D':[12,33,5,7,144,0],
                   'E':[5,3,6,94,2,4]})

print (bow)
   Rating  C    D   E
0     4.0  7   12   5
1     5.0  8   33   3
2     NaN  9    5   6
3     5.0  4    7  94
4     5.0  2  144   2
5     NaN  3    0   4

bow = bow.loc[bow['Rating'].notnull(), bow.sum() >= 50]

或者:

bow = bow.loc[bow['Rating'].notna(), ~(bow.sum(0) < 50)]
#oldier pandas versions
#bow = bow.loc[bow['Rating'].notnull(), ~(bow.sum(0) < 50)]
print (bow)
     D   E
0   12   5
1   33   3
3    7  94
4  144   2