Misalkan saya memiliki dataframe dengan kolom a
, b
dan c
, saya ingin mengurutkan dataframe dengan kolom b
dalam urutan menaik, dan dengan kolom c
dalam urutan menurun, bagaimana saya melakukan ini?
python
pandas
python-2.7
sorting
data-analysis
Rakesh Adhikesavan
sumber
sumber
Jawaban:
Pada rilis 0.17.0,
sort
metode ini tidak digunakan lagisort_values
.sort
telah sepenuhnya dihapus dalam rilis 0.20.0. Argumen (dan hasil) tetap sama:Anda dapat menggunakan argumen naik
sort
:Sebagai contoh:
Seperti yang dikomentari oleh @renadeen
yaitu, jika Anda ingin menggunakan kembali df1 sebagai DataFrame yang diurutkan:
atau
sumber
sort
metode ke variabel atau menambahinplace=True
panggilan metode.Pada panda 0.17.0,
DataFrame.sort()
sudah usang, dan diatur untuk dihapus dalam versi panda di masa depan. Cara untuk mengurutkan dataframe berdasarkan nilainya sekarang adalahDataFrame.sort_values
Dengan demikian, jawaban atas pertanyaan Anda sekarang adalah
sumber
Untuk kerangka data data numerik yang besar, Anda dapat melihat peningkatan kinerja yang signifikan melalui
numpy.lexsort
, yang melakukan pengurutan tidak langsung menggunakan urutan kunci:Satu kekhasan adalah bahwa urutan pengurutan yang ditentukan dengan
numpy.lexsort
dibalik:(-'b', 'a')
mengurutkan berdasarkan seria
terlebih dahulu. Kami meniadakan serib
untuk mencerminkan bahwa kami ingin seri ini dalam urutan menurun.Perlu diketahui bahwa
np.lexsort
hanya mengurutkan dengan nilai numerik, sementarapd.DataFrame.sort_values
berfungsi dengan string atau nilai numerik. Menggunakannp.lexsort
dengan string akan memberikan:TypeError: bad operand type for unary -: 'str'
.sumber