[英]Python: Filter rows in data frame when multiple rows meet a unique condition
[英]Print rows that meet multiple if statements in Python
目的
我想打印满足特定条件的文件主文件的整行。
问题
之前,我有
if rank <= 50 and price <= 10000:
代替
if np.any(rank <= 50) and np.any(price <= 10000):
但我收到错误: ValueError: 具有多个元素的数组的真值不明确。 使用 a.any() 或 a.all()
而且我不相信 a.any() 的使用是合适的,因为它会返回一个布尔值。 我也很难理解我如何只能打印满足这些条件的主行。
在此先感谢您的帮助和解释!
这是数据:
1,11,10950
2,14,11000
3,15,10500
5,18,9750
6,19,9045
7,19,9945
8,19,9945
9,20,9250
10,21,7850
11,22,10620
12,26,9700
13,28,9300
14,29,9000
15,50,7170
16,53,9200
17,58,9085
18,63,8570
19,67,7920
20,75,6900
21,86,6085
23,130,5750
import numpy as np
master = np.loadtxt('master.txt', delimiter=',')
uni = master[:, 0]
rank = master[:, 1]
price = master[:, 2]
if np.any(rank <= 50) and np.any(price <= 10000):
print("Print rows that meet conditions")
正如对您的问题的评论一样,使用布尔数组和np.logical_and
的组合来索引满足您的条件的行。
import numpy as np
master = np.loadtxt('master.txt', delimiter=',')
print(master[np.logical_and(master[:, 0] <= 50, master[:, 2] <= 10000)])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.