当前位置:  开发笔记 > 编程语言 > 正文

过滤其值小于0的pandas数据帧行

如何解决《过滤其值小于0的pandas数据帧行》经验,为你挑选了1个好方法。

我有像这样的熊猫数据框

df = pd.DataFrame(data=[[21, 1],[32, -4],[-4, 14],[3, 17],[-7,NaN]], columns=['a', 'b'])
df

我希望能够删除列列表中具有负值的所有行,并保留具有NaN的行.

在我的例子中只有2列,但我的数据集中有更多,所以我不能一个接一个地做.



1> ComputerFell..:

如果你想将它应用到所有列,这样做df[df > 0]dropna():

>>> df[df > 0].dropna()
    a   b
0  21   1
3   3  17

如果你知道要应用它的列,那么只对那些cols做df[df[cols] > 0]:

>>> cols = ['b']
>>> df[cols] = df[df[cols] > 0][cols]
>>> df.dropna()
    a   b
0  21   1
2  -4  14
3   3  17


如果我的任何行中都有NaN,这将无效
推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有