前提
AI-STANDARDの機械学習に取り組んでおります。Kaggleのタイタニック号の問題でAge補完で敬称ごとの平均年齢で補完しようとしています。
age_mean_map = df[['Title', 'Age']].groupby('Title').mean()
df['Age'] = df['Age'].fillna(-1)
for i in range(len(df)):
if df["Age"][i] == -1:
df["Age"][i] = age_mean_map[df["Title"][i]]
df
実現したいこと
dfのAge列のi行目が-1の時に、dfのAge列のi行目をage_mean_mapに格納されているその行のtitleの平均値で補完するコードを記述したい。
発生している問題・エラーメッセージ
KeyError Traceback (most recent call last)
File /opt/conda/lib/python3.9/site-packages/pandas/core/indexes/base.py:3621, in Index.get_loc(self, key, method, tolerance)
3620 try:
-> 3621 return self._engine.get_loc(casted_key)
3622 except KeyError as err:
File /opt/conda/lib/python3.9/site-packages/pandas/_libs/index.pyx:136, in pandas._libs.index.IndexEngine.get_loc()
File /opt/conda/lib/python3.9/site-packages/pandas/_libs/index.pyx:163, in pandas._libs.index.IndexEngine.get_loc()
File pandas/_libs/hashtable_class_helper.pxi:5198, in pandas._libs.hashtable.PyObjectHashTable.get_item()
File pandas/_libs/hashtable_class_helper.pxi:5206, in pandas._libs.hashtable.PyObjectHashTable.get_item()
KeyError: 1
The above exception was the direct cause of the following exception:
KeyError Traceback (most recent call last)
Input In [21], in <cell line: 5>()
5 for i in range(len(df)):
6 if df["Age"][i] == -1:
----> 7 df["Age"][i] = age_mean_map[df["Title"][i]]
8 df
File /opt/conda/lib/python3.9/site-packages/pandas/core/frame.py:3505, in DataFrame.getitem(self, key)
3503 if self.columns.nlevels > 1:
3504 return self._getitem_multilevel(key)
-> 3505 indexer = self.columns.get_loc(key)
3506 if is_integer(indexer):
3507 indexer = [indexer]
File /opt/conda/lib/python3.9/site-packages/pandas/core/indexes/base.py:3623, in Index.get_loc(self, key, method, tolerance)
3621 return self._engine.get_loc(casted_key)
3622 except KeyError as err:
-> 3623 raise KeyError(key) from err
3624 except TypeError:
3625 # If we have a listlike key, _check_indexing_error will raise
3626 # InvalidIndexError. Otherwise we fall through and re-raise
3627 # the TypeError.
3628 self._check_indexing_error(key)
KeyError: 1.0
エラーメッセージ
該当のソースコード
ソースコード
試したこと
if df["Age"][i] == -1:
df["Age"][i] = age_mean_map[df["Title"][i]]
こちらのif文で間違っているところを教えてください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/01/19 09:01