Saya pikir ini seharusnya sederhana, tetapi saya mencoba beberapa ide dan tidak ada yang berhasil:
last_row = len(DF)
DF = DF.drop(DF.index[last_row]) #<-- fail!
Saya mencoba menggunakan indeks negatif tetapi itu juga menyebabkan kesalahan. Saya pasti masih salah paham tentang sesuatu yang mendasar.
DF = DF[:-1]
?Jawaban:
Untuk melepaskan n baris terakhir:
Dengan nada yang sama, Anda dapat melepaskan n baris pertama:
sumber
di mana n adalah jumlah baris terakhir untuk dijatuhkan.
Untuk menjatuhkan baris terakhir:
sumber
Karena pemosisian indeks dalam Python berbasis 0, sebenarnya tidak akan ada elemen di
index
lokasi yang sesuailen(DF)
. Anda membutuhkannya untuk menjadilast_row = len(DF) - 1
:Namun, jauh lebih mudah untuk hanya menulis
DF[:-1]
.sumber
Terkejut tidak ada yang mengangkat yang ini:
Menjalankan uji kecepatan pada DataFrame dari 1000 baris menunjukkan bahwa pemotongan dan
head
/tail
~ 6 kali lebih cepat daripada menggunakandrop
:sumber
head()
dantail()
membuat tampilan sedangkandrop()
sebenarnya mengubah representasi dalam memori (baik modifikasi di tempat, atau membuat kerangka data yang sama sekali baru). Saya tidak mencari ini di dokumen, seseorang tolong lakukan. (jika itu perbedaannya: penjelasan yang baik untuk perf diff, dan kita perlu hati-hati memilih di antara keduanya) /head
,tail
dandrop
semua mengembalikan tampilan, meskipun itu benardrop
memberi Anda opsi untuk memodifikasi kerangka data asli di tempat.Output dari statistik:
gunakan saja
skipfooter=1
Output dari stats_2
sumber
drop mengembalikan array baru sehingga tersedak dalam og post; Saya memiliki persyaratan serupa untuk mengganti nama beberapa tajuk kolom dan menghapus beberapa baris karena file csv yang rusak diubah menjadi Dataframe, jadi setelah membaca posting ini saya menggunakan:
dan itu bekerja dengan baik, seperti yang Anda lihat dengan dua baris yang dikomentari di atas saya mencoba metode drop. () dan berhasil tetapi tidak sekeren dan mudah dibaca seperti menggunakan [n: -n], semoga membantu seseorang, terima kasih.
sumber
Untuk DataFrame yang lebih kompleks yang memiliki Multi-Indeks (katakanlah "Saham" dan "Tanggal") dan seseorang ingin menghapus baris terakhir untuk setiap Saham bukan hanya baris terakhir dari Saham terakhir, maka solusinya adalah:
Karena
groupby()
menambahkan level tambahan ke Multi-Indeks, kami hanya menjatuhkannya di bagian akhir menggunakanreset_index()
. Df yang dihasilkan mempertahankan tipe Multi-Indeks yang sama seperti sebelum operasi.sumber