python - 如果有多个条件无法弄清楚

标签 python pandas if-statement

我试图使用 python pandas 实现以下目标,但无法弄清楚为什么它不起作用。我在网上进行了大量搜索,但找不到所需的结果。

数据如下

Data    ADJ_LOW_1   ADJ_LOW_2       MIN     ADJ_HIGH_1     ADJ_HIGH_1   MAX
Data1   34.155      33.81       33.3    36.865     36.865   36.9
Data2   15.444      15.288      15.9    15.756     15.756   17.25
Data3   2.3265      2.303       2.35    2.4745     2.4745   2.6
Data4   21938.4     21716.8     21242   22624      22624    22600
Data5   6.5835      6.517       6.25    6.8175     6.8175   7.45
Data6   196.02      194.04      192.15  218.16     218.16   214.4
Data7   109.395     108.29      107.95  126.654    126.654  113.6
Data8   7.7715      7.693       7.5         8.383      8.383    8.25
Data9   604.89      598.78      572         640.3905   640.3905 648.9
Data10  843.5295    835.009     829         871.327    871.327  924.25

数据类型是

ADJ_LOW_1     float64
ADJ_LOW_2     float64
MIN           float64
ADJ_HIGH_1    float64
ADJ_HIGH_1    float64
MAX           float64

数据类型:对象

我的目标是实现以下结果:

if ADJ_LOW_1 <= MIN & ADJ_HIGH_1 >= MAX then insert column 'Result' and put value "P1"

elif

if ADJ_LOW_2<= MIN & ADJ_HIGH_1 >= MAX then insert column 'Result' and put value "P2"

elif

if ADJ_LOW_1<= MIN & ADJ_HIGH_2 >= MAX then insert column 'Result' and put value "P3"

esle

  "Blank"
``
x is the data reference 
`x.ADJ_LOW_1<=x.MIN & x.ADJ_HIGH_1>=x.MAX: x['R']="P1" elif x.ADJ_LOW_2<=x.MIN & x.ADJ_HIGH_1>=x.MAX: x['R']="P2" elif x.ADJ_LOW_1<=x.MIN & x.ADJ_HIGH_2>=x.MAX: x['R']="P3" else: x['R']=" "`

最佳答案

您可以使用np.select用于处理多个条件:

conditions = [
    (df['ADJ_LOW_1'] <= df["MIN"]) & (df['ADJ_HIGH_1'] >= df['MAX']),
    (df['ADJ_LOW_2'] <= df["MIN"]) & (df['ADJ_HIGH_1'] >= df['MAX']),
    (df['ADJ_LOW_1'] <= df["MIN"]) & (df['ADJ_HIGH_2'] >= df['MAX'])]

choices = ['P1', 'P2', 'P3']

df['Result'] = np.select(conditions, choices, default='Blank')

关于python - 如果有多个条件无法弄清楚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59813264/

相关文章:

c - 使用 C 打印学生综合成绩的平均值

python将数组拆分为同等级别的子数组

android - 我想在 kivy 中使用 Android 默认后退按钮

python-3.x - 排序数据框后重置索引

python - 从 pandas DataFrame python 中提取文件路径

java - 移动到相邻空间拾取硬币的二维阵列游戏

php - 嵌套 else if 语法

python - 将 json 转换为 pandas DataFrame

python - 每个唯一列值的天数和扩展评级

python - 使用包含列表 Python 的字典过滤 DataFrame 的 2 列