import random
import pandas as pd
heart_rate = [random.randrange(45,125) for _ in range(500)]
blood_pressure_systolic = [random.randrange(140,230) for _ in range(500)]
blood_pressure_dyastolic = [random.randrange(90,140) for _ in range(500)]
temperature = [random.randrange(34,42) for _ in range(500)]
respiratory_rate = [random.randrange(8,35) for _ in range(500)]
pulse_oximetry = [random.randrange(95,100) for _ in range(500)]
vitalsign = {'heart rate' : heart_rate,
'systolic blood pressure' : blood_pressure_systolic,
'dyastolic blood pressure' : blood_pressure_dyastolic,
'temperature' : temperature,
'respiratory rate' : respiratory_rate,
'pulse oximetry' : pulse_oximetry}
df = pd.DataFrame(vitalsign)
df.to_csv('vitalsign.csv')
mask = (50 < df['heart rate'] < 101 &
140 < df['systolic blood pressure'] < 160 &
90 < df['dyastolic blood pressure'] < 100 &
35 < df['temperature'] < 39 &
11 < df['respiratory rate'] < 19 &
95 < df['pulse oximetry'] < 100
, "excellent", "critical")
df.loc[mask, "class"]
.我该怎么解决
正如注释中提到的user2357112,这里不能使用链接比较。要进行元素比较,需要使用&
。这还需要使用括号,这样&
就不会优先。
事情会是这样的:
mask = ((50 < df['heart rate']) & (101 > df['heart rate']) & (140 < df['systolic...
为了避免这种情况,您可以为下限和上限构建系列:
low_limit = pd.Series([90, 50, 95, 11, 140, 35], index=df.columns)
high_limit = pd.Series([160, 101, 100, 19, 160, 39], index=df.columns)
mask = ((df < high_limit) & (df > low_limit)).all(axis=1)
df[mask]
Out:
dyastolic blood pressure heart rate pulse oximetry respiratory rate \
17 136 62 97 15
69 110 85 96 18
72 105 85 97 16
161 126 57 99 16
286 127 84 99 12
435 92 67 96 13
499 110 66 97 15
systolic blood pressure temperature
17 141 37
69 155 38
72 154 36
161 153 36
286 156 37
435 155 36
499 149 36
df['class'] = np.where(mask, 'excellent', 'critical')
运行上述操作后,我得到了错误: ValueError:数据帧的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()。 请告知我如何解决此问题。
问题内容: 在用or条件过滤我的结果数据帧时遇到问题。我希望我的结果df提取var大于0.25且小于-0.25的所有列值。 下面的逻辑为我提供了一个模糊的真实值,但是当我将此过滤分为两个单独的操作时,它可以工作。这是怎么回事 不知道在哪里使用建议。 问题答案: 在和python语句需要-值。因为这些被认为是模棱两可的,所以您应该使用“按位” (或)或(和)操作: 对于此类数据结构,它们会重载以生成
我有一个数据帧“信号”: 因为我需要一些条件来设置我的“\u exec\u dict”,这是一个告诉交易平台我的订单是什么的字典? 问题是我不能使用 来做条件判定。 要进行测试,请执行以下操作: 有一些改变, 结果是: 搜索后,像一个系列的真相值是模糊的。使用a.empty、a.bool()、a.item()、a.any()或a.all()
问题内容: 在用条件过滤我的结果数据帧时遇到问题。我希望我的结果提取大于0.25且小于的所有列值。 下面的逻辑为我提供了一个模糊的真实值,但是当我将此过滤分为两个单独的操作时,它起作用。这是怎么回事 不知道在哪里使用建议。 问题答案: 在和python语句需要值。因为这些被认为是模棱两可的,所以你应该使用操作: 对于此类数据结构,它们会重载以产生元素级(或)。 只是为该语句添加更多解释: 当你想获
但我有一个错误。 ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()。 我怎样才能修好它?
当我运行以下代码时: 它给出了以下错误: ValueError:序列的真值不明确。 使用a.empty、a.bool()、a.item()、a.any()或a.all() 这里怎么了?