SettingWithCopyWarning - iloc vs. loc - не может понять, почему - PullRequest
0 голосов
/ 30 мая 2019

У меня есть базовое понимание 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)
...