Uważam, że wynik jest trochę losowy. Czasami jest to kopia, czasami jest to widok. Na przykład:W Pandach, czy metoda .iloc daje kopię lub widok?
df = pd.DataFrame([{'name':'Marry', 'age':21},{'name':'John','age':24}],index=['student1','student2'])
df
age name
student1 21 Marry
student2 24 John
Teraz, pozwól mi spróbować trochę zmodyfikować.
df2= df.loc['student1']
df2 [0] = 23
df
age name
student1 21 Marry
student2 24 John
Jak widać, nic się nie zmieniło. df2 to kopia. Jednakże, jeśli dodam innego ucznia do dataframe ...
df.loc['student3'] = ['old','Tom']
df
age name
student1 21 Marry
student2 24 John
student3 old Tom
Spróbuj ponownie zmienić wiek ..
df3=df.loc['student1']
df3[0]=33
df
age name
student1 33 Marry
student2 24 John
student3 old Tom
Teraz DF3 nagle stał się pogląd. Co się dzieje? Domyślam się, że kluczem jest wartość "stary"?
Czy to oznacza, że zawsze otrzymam kopię, jeśli ramka danych zawiera wiele dtypów? – Qiyu
@Qiyu z wieloma dtypami tak. –
Mam to. Dzięki! – Qiyu