Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengisih DataFrame Pandas mengikut Berbilang Lajur dalam Tertib Menaik dan Menurun?

Bagaimana untuk Mengisih DataFrame Pandas mengikut Berbilang Lajur dalam Tertib Menaik dan Menurun?

Linda Hamilton
Linda Hamiltonasal
2024-12-15 08:49:09187semak imbas

How to Sort a Pandas DataFrame by Multiple Columns in Ascending and Descending Order?

Mengisih Bingkai Data Panda mengikut Berbilang Lajur

Mengisih bingkai data Pandas mengikut berbilang lajur ialah operasi biasa dalam analisis data. Pertimbangkan bingkai data dengan lajur 'a', 'b' dan 'c'. Untuk mengisih rangka data ini mengikut lajur 'b' dalam tertib menaik dan lajur 'c' dalam tertib menurun, ikut langkah berikut:

Bermula dari Pandas versi 0.17.0, kaedah isihan telah ditamatkan dan memihak kepada nilai_isih. Mulai versi 0.20.0, isihan telah dialih keluar sepenuhnya. Walau bagaimanapun, hujah dan keputusan kekal tidak berubah:

df.sort_values(['a', 'b'], ascending=[True, False])

Cara yang setara menggunakan kaedah isihan yang ditamatkan ialah:

df.sort(['a', 'b'], ascending=[True, False])

Sebagai contoh, pertimbangkan bingkai data df1 dengan nilai integer rawak dalam lajur 'a' dan 'b':

import pandas as pd
import numpy as np

df1 = pd.DataFrame(np.random.randint(1, 5, (10, 2)), columns=['a', 'b'])

Isih rangka data ini dengan 'a' dalam menaik susunan dan 'b' dalam tertib menurun memberikan:

df1.sort(['a', 'b'], ascending=[True, False])
   a  b
2  1  4
7  1  3
1  1  2
3  1  2
4  3  2
6  4  4
0  4  3
9  4  3
5  4  1
8  4  1

Ingat bahawa kaedah isihan tidak berada di tempat secara lalai. Untuk mengemas kini df1 dengan nilai yang diisih, tetapkan hasil kaedah isihan kepada df1 atau gunakan inplace=True dalam panggilan kaedah:

df1 = df1.sort(['a', 'b'], ascending=[True, False])

atau

df1.sort(['a', 'b'], ascending=[True, False], inplace=True)

Atas ialah kandungan terperinci Bagaimana untuk Mengisih DataFrame Pandas mengikut Berbilang Lajur dalam Tertib Menaik dan Menurun?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn