Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menyisih Lajur Pandas DataFrame Berdasarkan Kamus?
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}
Penyelesaian:
Menggunakan Siri Kategori:
Pandas 0.15 memperkenalkan Siri Kategori, yang menyediakan cara yang elegan untuk mengendalikan perkara ini senario:
Tukar lajur bulan kepada siri kategori, dengan menyatakan susunan tersuai:
df['m'] = pd.Categorical(df['m'], ["March", "April", "Dec"])
Isih bingkai data berdasarkan kategori lajur:
df.sort_values("m")
Menggunakan Siri Perantara:
Sebelum Pandas 0.15, anda boleh menggunakan siri perantara untuk mencapai pengisihan tersuai:
Gunakan kamus tersuai pada bulan tersebut lajur:
s = df['m'].apply(lambda x: {'March':0, 'April':1, 'Dec':3}[x])
Isih siri perantara:
s.sort_values()
Tetapkan indeks bingkai data kepada siri perantara yang diisih dan isikan :
df.set_index(s.index).sort()
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})
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!