Tôi thấy kết quả là một chút ngẫu nhiên. Đôi khi đó là một bản sao đôi khi đó là một cái nhìn. Ví dụ:Ở Pandas, phương thức .iloc có cung cấp bản sao hoặc chế độ xem không?
df = pd.DataFrame([{'name':'Marry', 'age':21},{'name':'John','age':24}],index=['student1','student2'])
df
age name
student1 21 Marry
student2 24 John
Bây giờ, hãy để tôi cố gắng sửa đổi nó một chút.
df2= df.loc['student1']
df2 [0] = 23
df
age name
student1 21 Marry
student2 24 John
Như bạn có thể thấy, không có gì thay đổi. df2 là một bản sao. Tuy nhiên, nếu tôi thêm sinh viên khác vào dataframe ...
df.loc['student3'] = ['old','Tom']
df
age name
student1 21 Marry
student2 24 John
student3 old Tom
Cố gắng thay đổi tuổi một lần nữa ..
df3=df.loc['student1']
df3[0]=33
df
age name
student1 33 Marry
student2 24 John
student3 old Tom
Bây giờ df3 đột nhiên trở thành một cái nhìn. Chuyện gì vậy? Tôi đoán giá trị 'cũ' là chìa khóa?
Vậy điều đó có nghĩa là tôi sẽ luôn nhận được bản sao nếu khung dữ liệu có nhiều loại dtypes? – Qiyu
@Qiyu với nhiều loại dtypes. –
OK. Cảm ơn! – Qiyu