YESと見えているものが文字列の'YES'ではないという可能性があります。
同じような状況を再現してみましょう。
python
1import pandas as pd
2
3class mimic:
4 def __init__(self, original):
5 self.original = original
6 def __str__(self):
7 return str(self.original)
8
9raw_data = pd.DataFrame({'SAT':[1363, 1792], 'Admitted':[mimic('YES'), mimic('NO')]})
10
11data = raw_data.copy()
12print(data)
13data["Admitted"] = data["Admitted"].map({"YES":1,"NO":0})
14print(data)
実行結果は、
python
1>>> data = raw_data.copy()
2>>> print(data)
3 SAT Admitted
40 1363 YES
51 1792 NO
6>>> data["Admitted"] = data["Admitted"].map({"YES":1,"NO":0})
7>>> print(data)
8 SAT Admitted
90 1363 NaN
101 1792 NaN
これに類する原因による問題であれば、以下のようにすれば分かります。
python
1>>> print(type(raw_data['Admitted'][0]))
2<class '__main__.mimic'>```