我有一个数据框,我试图创建一个返回1或0的新列。逻辑是如果状态的['Avg_Temp']大于或等于['Avg_Temp']。mean()然后我想['Hot']列的值为'1',否则它应该有'0'的值。大熊猫返回1或0时,与另一列的平均值相比
我尝试低于但我对DF结果[“热”]都是“1”,所以我知道我做错了什么......在您的帮助
谢谢!
数据=
Avg_Temp
MI 66
AL 78
OH 50
VT 64
NB 34
df = data
TempMean = df10['Avg_Temp'].mean()
df10['Hot'] = 0
df10['Hot'] = df10.loc[df10['Avg_Temp'] >= TempMean] = 1
return df10['Hot']
有几个问题与您的代码,例如压痕。编辑问题,这样就很清楚了。就目前而言,'df'和'df10'是什么混淆。从未定义过'df10'。 – Mikk
这可能就足够了:'df10 ['Hot'] [df10 ['Avg_Temp']> = TempMean] = 1'。注意在倒数第二行中你基本上有两项任务。 – Evert
@Evert:通常应该避免像这样的链式赋值。 – DSM