Python 数据帧-用布尔掩码替换值

Python 数据帧-用布尔掩码替换值,python,pandas,dataframe,boolean,data-manipulation,Python,Pandas,Dataframe,Boolean,Data Manipulation,我有一个数据框,其中有一列名为“Temperature” data = {'Day': [1,2,3,4], 'Temperature': [20,30,40,50] } 现在,我不需要温度数字,而是将“1”分配给温度在25到45范围内的单元格。如果不是,我将为其指定0 我想要的数据帧是 data = {'Day': [1,2,3,4], 'Temperature': [0,1,1,0] } 我有一个布尔掩码,如下所

我有一个数据框,其中有一列名为“Temperature”

data = {'Day':  [1,2,3,4],
        'Temperature': [20,30,40,50]
        }
现在,我不需要温度数字,而是将“1”分配给温度在25到45范围内的单元格。如果不是,我将为其指定0

我想要的数据帧是

    data = {'Day':  [1,2,3,4],
        'Temperature': [0,1,1,0]
        }
我有一个布尔掩码,如下所示:

df[(df['Temperature']<=45) & (df['Temperature']>=25)]
df[(df[‘温度’]=25)]
如何使用布尔掩码来实现这一点?或者,最好的方法是什么


谢谢。

想法是通过转换为整数将布尔掩码转换为
0,1

df = pd.DataFrame(data)

df['Temperature'] = ((df['Temperature']<=45) & (df['Temperature']>=25)).astype(int)

df['Temperature'] = np.where(df['Temperature']<=45) & (df['Temperature']>=25), 1, 0)
data={'Day':[1,2,3,4],
“温度”:[20,30,40,50]
}
df=pd.DataFrame(数据)
df[(df[‘温度’]=25)]=1
df[(df[‘温度’]>=45)和(df[‘温度’]>=25)]=0
df['Temperature'] = df['Temperature'].between(25, 45).astype(int)

df['Temperature'] = np.where(df['Temperature'].between(25, 45), 1, 0)
data = {'Day':  [1,2,3,4],
        'Temperature': [20,30,40,50]
        }

df = pd.DataFrame(data)
df[(df['Temperature']<=45) & (df['Temperature']>=25)] = 1
df[(df['Temperature']>=45) & (df['Temperature']>=25)] = 0