1
背景を使用したデータフレームに新しい文字列列を作成するために使用する機能:私は、既存の一連の列の値に基づいて新しい文字列列を作成しようとしています:私はPythonのデータフレームパイソン:複数のElif文に
目標を持っています。これには複数の 'elif'文が必要です。以下は
アウトerroringれる私(サンプル)コードです:
def rationale(row):
if row['Recommendation No. 1'] == 'Category_A':
result = []
result.append(row['First_Flag'])
result.append(row['Second_Flag'])
result.append(row['Third_Flag'])
result = ' '.join(result)
return result
elif row['Recommendation No. 1'] == 'Category_B':
result.append(row['Fourth_Flag'])
result.append(row['Fifth_Flag'])
result.append(row['Sixth_Flag'])
result.append(row['Seventh_Flag'])
result = ' '.join(result)
return result
elif row['Recommendation No. 1'] == 'Category_C':
result.append(row['Eigth_Flag'])
result.append(row['Ninth_Flag'])
result.append(row['Tenth_Flag'])
result.append(row['Eleventh_Flag'])
result = ' '.join(result)
return result
else:
return np.nan
df_top3_rationale['Recommendation No. 1 Rationale'] = df_top3_rationale.apply(rationale, axis=1)
これは私が 'elifの' 文で取得エラーです:
UnboundLocalError: ("local variable 'result' referenced before assignment", 'occurred at index 14854')
すべてのヘルプは大歓迎です!
あなたは 'if'ブロックに' result'を作成します - これは 'elif'ブロックのどこから来たはずですか? – jonrsharpe
あなたは私がすべてのelifブロックから戻り値を取り除くべきであると言っていますか? – PineNuts0
私は確信していませんが、私はあなたが何が起こることを期待しているのか正確にはわかりません。あなたが '行' ['Recommendation No.1']!= 'Category_A''から 'result'が来ると期待している場所はどこですか? – jonrsharpe