Per prima cosa ho creato un nuovo frame DataFrame. Quindi creare un nuovo frame2 filtrando alcuni dati dal frame. Ora voglio assegnare un valore a frame2:pandas SettingWithCopyWarning dopo aver provato .loc
import numpy as np
from pandas import DataFrame
frame = DataFrame(np.arange(9).reshape((3, 3)), index=['a', 'c', 'd'], columns=['Ohio', 'Texas', 'California'])
mask = frame['Texas'] > 1
print frame[mask]
frame2 = frame.loc[mask]
frame2.loc['c', 'Ohio'] = 'me'
print frame2
ma ho ottenuto questo avvertimento:
C:\Python27\lib\site-packages\pandas\core\indexing.py:461: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead
perché continuo ottenuto questo avvertimento anche se ho usato la sintassi .loc consigliato? cosa dovrei fare per evitare questo avvertimento?
sembra che ho trovato una soluzione possibile a: http://stackoverflow.com/questions/23688307/settingwithcopywarning-even-when-using-loc. qualcuno ha altre buone idee? – Osora
Qual è la tua intenzione qui? vuoi aggiornare una copia o l'originale df – EdChum
@EdChum Voglio aggiornare la copia. – Osora