En Pandas, ¿el método .iloc da una copia o vista?
Me parece que el resultado es un poco aleatorio. A veces es una copia, a veces es una vista. Por ejemplo:
df = pd.DataFrame([{'name':'Marry', 'age':21},{'name':'John','age':24}],index=['student1','student2'])
df
age name
student1 21 Marry
student2 24 John
Ahora, déjame intentar modificarlo un poco.
df2= df.loc['student1']
df2 [0] = 23
df
age name
student1 21 Marry
student2 24 John
Como puede ver, nada cambió. df2 es una copia. Sin embargo, si agrego otro estudiante al marco de datos ...
df.loc['student3'] = ['old','Tom']
df
age name
student1 21 Marry
student2 24 John
student3 old Tom
Intenta cambiar la edad de nuevo.
df3=df.loc['student1']
df3[0]=33
df
age name
student1 33 Marry
student2 24 John
student3 old Tom
Ahora df3 de repente se convirtió en una vista. Que esta pasando? ¿Supongo que el valor 'viejo' es la clave?