У меня есть базовое понимание SettingWithCopyWarning, но я не могу понять, почему я получаю предупреждение для этого конкретного случая.
Я следую за кодом от https://github.com/ageron/handson-ml/blob/master/02_end_to_end_machine_learning_project.ipynb
Когда я запускаю код, как показано ниже (используя .loc), я не получаю SettingWithCopyWarning
Однако, если я вместо этого запускаю код с .iloc, я получаю предупреждение.
Может кто-нибудь помочь мне понять это?
from sklearn.model_selection import StratifiedShuffleSplit
split = StratifiedShuffleSplit(n_splits=1, test_size=0.2, random_state=42)
for train_index, test_index in split.split(housing, housing["income_cat"]):
strat_train_set = housing.loc[train_index]
strat_test_set = housing.loc[test_index]
for set_ in (strat_train_set, strat_test_set):
set_.drop("income_cat", axis=1, inplace=True)