Baris ini mengembalikan 4 baris pertama dalam kerangka data combined
untukfeature_a
combined.iloc[0:4]["feature_a"]
Seperti yang diharapkan, baris berikutnya ini mengembalikan baris 2, 4, dan 16 dalam kerangka data untuk kolom feature_a
:
combined.iloc[[1,3,15]]["feature_a"]
Baris ini menetapkan 4 baris pertama dalam kerangka data untuk feature_a
untuk 77
.
combined.iloc[0:4]["feature_a"] = 77
Baris ini melakukan sesuatu. Beberapa jenis komputasi terjadi karena membutuhkan waktu lebih lama ketika diterapkan pada daftar yang lebih panjang.
combined.iloc[[1,3,15]]["feature_a"] = 88
Baris ke-2, ke-4, dan ke-16 tidak disetel 88
saat dicentang dengan ini:
combined.iloc[[1,3,15]]["feature_a"]
Bagaimana saya bisa mengatur daftar baris kolom dataframe secara acak ke nilai tanpa mengambil jalan memutar pengkodean besar-besaran?
Skenario ini sepertinya cukup mudah dan umum.
Jawaban:
Jika Anda membalik pemilih, dan memilih berdasarkan kolom terlebih dahulu, itu akan berfungsi dengan baik:
Kode:
Mengapa?
Ketika Anda melakukan yang pertama (cara tidak bekerja) Anda memilih bagian yang tidak berdekatan dari kerangka data. Anda seharusnya menerima peringatan:
Ini karena ada dua operasi independen yang terjadi.
combined.iloc[[1,3,15]]
membuat bingkai data baru hanya tiga baris, dan frame harus disalin. kemudian...["feature_a"]
tetapi dipilih terhadap salinan.Jadi penugasannya disalin. Ada berbagai cara untuk memperbaikinya, tetapi dalam hal ini, lebih mudah (dan lebih murah) untuk memilih kolom terlebih dahulu, lalu pilih bagian kolom untuk penugasan.
Kode Tes:
Hasil:
sumber