質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

876閲覧

pythonde NameError: name 'gender_f' is not definedが解消されない

Shin_go

総合スコア19

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2021/10/01 13:53

イメージ説明

Pythonでエラーがが解消されない状況になっています。
添付のデータフレームに、gender_f というカラムが存在しているのですが、
エラーでは、not defined と出てしまいます。

解消方法がわかるかたは教えていただけますでしょうか。

python

1# リスク・支援判定 2def sien_cls(col): 3 gender_f = col[3] 4 height=col[4] 5 weight=col[5] 6 waist=col[6] 7 neutral_fat=col[7] 8 HDL=col[8] 9 glucose_level=col[9] 10 HbA1c=col[10] 11 max_bp=col[11] 12 min_bp=col[12] 13 smoke_flg=col[13] 14 15if (gender_f == 1 and 85 <= waist) or \ 16 (gender_f == 0 and 90 <= waist): 17 risk='A' 18elif weight / height / height * 10000 >= 25: 19 risk='B' 20else: 21 risk=np.NAN 22 23opt1=0 24opt2=0 25opt3=0 26opt4=0 27 28#空腹時血糖値 29if (glucose_level >= 110 ) or ( HbA1c >= 5.6 ): 30 opt1 = 1 31 32# 中性脂肪値 33if (neutral_fat >= 150 ) or ( HDL < 40 ): 34 opt2 = 1 35 36# 最高血圧 最低血圧 37if (max_bp >= 130 ) or ( min_bp >= 85 ): 38 opt3 = 1 39 40# 上記3つのいずれかに該当かつ喫煙 41if (opt1 + opt2 + opt3) > 0 and smoke_flg == 1 : 42 opt4 = 1 43 44# 支援レベルを決定 45 46opt = opt1 + opt2 + opt3 + opt4 47sien=0 48if risk == 'A': 49 if opt >= 2: 50 sien = 2 51 elif opt == 1: 52 sien = 1 53 else: 54 sien = 0 55if risk == 'B': 56 if opt >= 3: 57 sien = 2 58 elif (opt == 1) or (opt == 2): 59 sien = 1 60 else: 61 sien = 0 62return sien 63 64person_test_cost['SIEN'] = person_test_cost.apply(sien_cls,axis=1) 65 66``````python 67--------------------------------------------------------------------------- 68NameError Traceback (most recent call last) 69<ipython-input-375-9b506167a087> in <module>() 70 13 smoke_flg=col[13] 71 14 72---> 15 if (gender_f == 1 and 85 <= waist) or (gender_f == 0 and 90 <= waist): 73 16 risk='A' 74 17 elif weight / height / height * 10000 >= 25: 75 76![NameError: name 'gender_f' is not defined](7dd1d8d7f77ba5bd48b40ed814fc8537.png)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

もしかして

python

1if (gender_f == 1 and 85 <= waist) or \ 2(略) 3return sien

までは、def sien_cls(col)の一部ではありませんか?そうであれば、if (gender_f == 1 and 85 <= waist) or
(略)
return sien
まではdef sien_clsとインデントが違うので、関数外と処理とみなされるので、スコープのせいで該当のエラーがでます。
インデントを正しくしてやってみてください。
インデントの大切さはほかの人々も口を酸っぱくして言っているはずですが
あと、インデントは慣習的に4スペースが見る人に好まれます。

投稿2021/10/01 14:05

編集2021/10/01 14:11
ikapy

総合スコア1167

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Shin_go

2021/10/01 15:29

ありがとうございます。 関数の内数にして、きれいに並べなおしてみましたらうまく実行できました。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問