我正在尝试删除值Rating
等于NaN
并且单sum
的{{1}}是columns
的行。等级包含<50
范围内的整数值。这是我删除它们的代码。
[1,5]
但是当我打印数据框时,我仍然可以看到bow = bow.loc[~(bow['Rating'] < 1), ~(bow.sum(0) < 50)]
评级。 NaN
部分正确执行其工作。
非常感谢您的帮助!
编辑:
这是sum
的创建方式:
bow
答案 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