Немного другой вопрос, чем вы, ребята, можете привыкнуть видеть в отношении панд SetWithCopyWarning.Чтобы улучшить мое понимание, я активно пытался сгенерировать это предупреждение, и у меня действительно были проблемы ... но я наткнулся на два интересных блока кода, которые, как я считаю, должны генерировать код setwithcopy, но только один делает:
Создание фрейма данных:
import numpy as np
import pandas as pd
np.random.seed(1000)
df = pd.DataFrame(np.random.randn(5,5))
Следующий код генерирует SetWithCopyWarning, как и ожидалось:
df2=df.loc[:,:3]
df2.loc[0,0] = 99
Эта строка кода имеет одно небольшое отличие и не генерирует SetWithCopyWarning:
df2=df.loc[:4,:3]
df2.loc[0,0] = 99
Почему только изменение первого элемента индекса в .loc в первой строке с ":" на ": 4" не может создать SetWithCopyWarning?Несмотря на то, что оба вытягивают все строки, помеченные 0-4?
Отредактировано, чтобы мой код выскочил больше.