Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menyisih Lajur Pandas DataFrame Berdasarkan Kamus?

Bagaimanakah Saya Boleh Menyisih Lajur Pandas DataFrame Berdasarkan Kamus?

Linda Hamilton
Lepaskan: 2024-11-27 19:30:14
asal
397 orang telah melayarinya

How Can I Custom Sort a Pandas DataFrame Column Based on a Dictionary?

Isih Tersuai dalam Bingkai Data Pandas

Dalam Panda, kadangkala anda mungkin perlu mengisih kerangka data berdasarkan pesanan tersuai. Ini boleh dicapai menggunakan kamus untuk mentakrifkan susunan isihan yang diingini.

Masalah:
Anda mempunyai bingkai data Pandas dengan lajur yang mengandungi nama bulan. Anda mahu mengisih lajur ini menggunakan kamus tersuai, seperti:

custom_dict = {'March':0, 'April':1, 'Dec':3}
Salin selepas log masuk

Penyelesaian:

Menggunakan Siri Kategori:
Pandas 0.15 memperkenalkan Siri Kategori, yang menyediakan cara yang elegan untuk mengendalikan perkara ini senario:

  1. Tukar lajur bulan kepada siri kategori, dengan menyatakan susunan tersuai:

    df['m'] = pd.Categorical(df['m'], ["March", "April", "Dec"])
    Salin selepas log masuk
  2. Isih bingkai data berdasarkan kategori lajur:

    df.sort_values("m")
    Salin selepas log masuk

Menggunakan Siri Perantara:
Sebelum Pandas 0.15, anda boleh menggunakan siri perantara untuk mencapai pengisihan tersuai:

  1. Gunakan kamus tersuai pada bulan tersebut lajur:

    s = df['m'].apply(lambda x: {'March':0, 'April':1, 'Dec':3}[x])
    Salin selepas log masuk
  2. Isih siri perantara:

    s.sort_values()
    Salin selepas log masuk
  3. Tetapkan indeks bingkai data kepada siri perantara yang diisih dan isikan :

    df.set_index(s.index).sort()
    Salin selepas log masuk

Menggunakan Ganti Kaedah:
Dalam versi Pandas yang lebih baharu, Siri menawarkan kaedah ganti yang membolehkan penyelesaian yang lebih ringkas:

df['m'].replace({'March':0, 'April':1, 'Dec':3})
Salin selepas log masuk

Kaedah ini menggantikan nilai bulan dengan nilai pengisihan sepadan yang dinyatakan dalam kamus. Mengisih bingkai data berdasarkan lajur bulan yang diubah suai akan mencapai pesanan tersuai yang diingini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyisih Lajur Pandas DataFrame Berdasarkan Kamus?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan