, как описано в вашем сообщении об ошибке. Вместо этого используйте скобки, чтобы изолировать каждую логическую маску и назначить переменным:

учаю исключение, когда пытаюсь нарезать логическим выражением мой фрейм данных Pandas.

Мои данные имеют следующую форму:

df
    GDP_norm    SP500_Index_deflated_norm
Year        
1980    2.121190    0.769400
1981    2.176224    0.843933
1982    2.134638    0.700833
1983    2.233525    0.829402
1984    2.395658    0.923654
1985    2.497204    0.922986
1986    2.584896    1.09770

df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 38 entries, 1980 to 2017
Data columns (total 2 columns):
GDP_norm                     38 non-null float64
SP500_Index_deflated_norm    38 non-null float64
dtypes: float64(2)
memory usage: 912.0 bytes

Команда следующая:

df[((df['GDP_norm'] >=3.5 & df['GDP_norm'] <= 4.5) & (df['SP500_Index_deflated_norm'] > 3)) | (

   (df['GDP_norm'] >= 4.0 & df['GDP_norm'] <= 5.0) & (df['SP500_Index_deflated_norm'] < 3.5))]

Сообщение об ошибке следующее:

TypeError: cannot compare a dtyped [float64] array with a scalar of type [bool]

Ваш совет будет оценен.

Ответы на вопрос(2)

Ваш ответ на вопрос