Я проверял Pandas обсуждение индексации документов о возврате представлений или копий , когда я столкнулся со следующим примером и оператором:
dfmi = pd.DataFrame(...)
dfmi['one']['second'] = value
# becomes
dfmi.__getitem__('one').__setitem__('second', value)
См. __getitem__
там? За исключением простых случаев, очень трудно предсказать, будет ли он возвращать представление или копию (это зависит от структуры памяти массива, о которой pandas не дает никаких гарантий), и, следовательно, * изменится ли __setitem__
dfmi
или временный объект, который выбрасывается сразу после этого. Это , о чем SettingWithCopy
предупреждает вас!
Как возможно, что поведение фундаментальной процедуры, такой как df.__getitem__
, не определено однозначно? Какие конструктивные соображения поддерживают это поведение? Почему «это зависит от структуры памяти массива, о которой pandas не дает никаких гарантий» ?