我想創建一個新的列在數據類型爲float的列上應用多個條件。創建新的列,同時迭代通過熊貓數據集(多個條件)
Sample data:
ID CO
0 12.0
1 11.0
2 8.0
3 6.5
4 5.5
5 5.7
6 5.8
7 6.5
8 6.8
for index, row in df.iterrows():
if row['CO'] in arange(0,1.54):
row.loc['CO_1'] = 'GOOD'
elif row['CO'] in arange(1.54,1.70):
row.loc['CO_1'] = 'MOD'
以上沒有工作,所以我試着寫一個單獨的功能:
def aqi_CO(row):
val_1=0
for x in row:
if x in arange(0,0.054):
val_1 = 'GOOD'
elif x in arange(0.054,0.070):
val_1 = 'MODERATE'
elif x in arange(0.070,0.085):
val_1 = 'UNHEALTHY_SG'
elif x in arange(0.085,0.105):
val_1 = 'UNHEALTHY'
elif x in arange(0.105,0.200):
val_1 = 'VERY_UNHEALTHY'
elif x in arange(0.200,3):
val_1 = 'HAZARDOUS'
return val_1
並把它稱爲應用:
df['aqi_CO'] = df.apply(lambda x: aqi_CO(df['CO']), axis=1)
這並沒有爲-很好地工作。我現在困惑,有人可以幫助我,我應該如何添加新的列遍歷數據幀逐行,並檢查3,4條件創建新的列。
使用'pd.cut'和拉布勒 – Wen
「沒有工作」是不明確:沒這導致錯誤(請出示回溯),它是否會導致意外的輸出(請出示預期和意外的輸出),或它什麼都不做? – Evert
'如果row ['CO']在arange(0,1.54):'可能不會做你想要的。如果你想'如果0
Evert