Pandas: urutkan dataframe berdasarkan indeks dan kolom
Anda dapat menggunakan sintaks berikut untuk mengurutkan pandas DataFrame berdasarkan indeks dan kolom:
df = df. sort_values (by = [' column_name ', ' index '], ascending = [ False , True ])
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.
Contoh: mengurutkan DataFrame berdasarkan indeks dan kolom
Kode berikut menunjukkan cara mengurutkan pandas DataFrame berdasarkan kolom bernama poin dan kemudian berdasarkan kolom indeks :
import pandas as pd #createDataFrame df = pd. DataFrame ({' id ': [1, 2, 3, 4, 5, 6, 7, 8], ' points ': [25, 15, 15, 14, 20, 20, 25, 29], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]}). set_index (' id ') #view first few rows df. head () points assists rebounds id 1 25 5 11 2 15 7 8 3 15 7 10 4 14 9 6 5 20 12 6 #sort by points and then by index df. sort_values (by = [' points ', ' id '], ascending = [ False , True ]) points assists rebounds id 8 29 4 12 1 25 5 11 7 25 9 9 5 20 12 6 6 20 9 5 2 15 7 8 3 15 7 10 4 14 9 6
DataFrame yang dihasilkan diurutkan berdasarkan poin dalam urutan menurun kemudian berdasarkan indeks dalam urutan menaik (jika ada dua pemain yang mencetak jumlah poin yang sama).
Perhatikan bahwa jika kita tidak menggunakan argumen ascending , maka setiap kolom akan menggunakan urutan ascending sebagai metode pengurutan default:
#sort by points and then by index df. sort_values (by = [' points ', ' id ']) points assists rebounds id 4 14 9 6 2 15 7 8 3 15 7 10 5 20 12 6 6 20 9 5 1 25 5 11 7 25 9 9 8 29 4 12
Jika kolom indeks saat ini tidak disebutkan namanya, Anda dapat mengganti namanya lalu mengurutkannya sesuai:
#sort by points and then by index df. rename_axis (' index '). sort_values (by = [' points ', ' id ']) points assists rebounds id 4 14 9 6 2 15 7 8 3 15 7 10 5 20 12 6 6 20 9 5 1 25 5 11 7 25 9 9 8 29 4 12
Sumber daya tambahan
Pandas: cara mengurutkan kolom berdasarkan nama
Pandas: urutkan DataFrame berdasarkan tanggal
Pandas: Cara menghapus baris duplikat