python按条件删除行,基于多个条件Python Pandas删除行

我想在满足几个条件时删除行:

例如,生成一个随机DataFrame:

import pandas as pd

import numpy as np

df = pd.DataFrame(np.random.randn(10, 4), columns=['one', 'two', 'three', 'four'])

print df

表的一个实例如下所示:

one two three four

0 -0.225730 -1.376075 0.187749 0.763307

1 0.031392 0.752496 -1.504769 -1.247581

2 -0.442992 -0.323782 -0.710859 -0.502574

3 -0.948055 -0.224910 -1.337001 3.328741

4 1.879985 -0.968238 1.229118 -1.044477

5 0.440025 -0.809856 -0.336522 0.787792

6 1.499040 0.195022 0.387194 0.952725

7 -0.923592 -1.394025 -0.623201 -0.738013

8 -1.775043 -1.279997 0.194206 -1.176260

9 -0.602815 1.183396 -2.712422 -0.377118

我想根据以下条件删除行:

行的值为col’one’,’two’或’three’大于0;并且应删除col’four’小于0的值.

然后我尝试实现如下:

df = df[df.one > 0 or df.two > 0 or df.three > 0 and df.four < 1]

但是,导致如下错误消息:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

有人可以根据多种情况帮助我如何删除吗?

解决方法:

试试这个:

df = df[(df.one > 0) | (df.two > 0) | (df.three > 0) & (df.four < 1)]

标签:python,pandas

来源: https://codeday.me/bug/20191004/1853367.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值