Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mencipta Lajur Label Perlumbaan Baharu dalam Panda Berdasarkan Lajur Berbilang Etnik?
Apabila bekerja dengan bingkai data dalam Pandas, anda mungkin perlu membuat lajur baharu berdasarkan nilai daripada berbilang lajur sedia ada. Senario biasa timbul apabila fungsi tersuai perlu digunakan pada set lajur mengikut baris untuk menentukan nilai lajur baharu.
Pertimbangkan rangka data berikut dengan enam berkaitan etnik lajur penunjuk:
df = pd.DataFrame({ 'ERI_Hispanic': [0, 1, 0, 0, 0, 0, 0, 0, 0, 0], 'ERI_AmerInd_AKNatv': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ERI_Asian': [0, 0, 0, 0, 0, 0, 1, 0, 0, 0], 'ERI_Black_Afr.Amer': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'ERI_HI_PacIsl': [0, 0, 0, 0, 0, 0, 0, 1, 0, 0], 'ERI_White': [1, 0, 1, 1, 0, 1, 1, 1, 1, 1] })
Matlamatnya adalah untuk mencipta lajur baharu bernama 'label_bangsa' yang mengelaskan setiap baris berdasarkan kriteria berikut:
Penyelesaian melibatkan dua langkah: mencipta fungsi tersuai untuk melaksanakan pengelasan dan menggunakan fungsi itu pada rangka data mengikut baris.
def label_race(row): if row['ERI_Hispanic'] == 1: return 'Hispanic' elif row['ERI_AmerInd_AKNatv'] + row['ERI_Asian'] + row['ERI_Black_Afr.Amer'] + row['ERI_HI_PacIsl'] + row['ERI_White'] > 1: return 'Two or More' elif row['ERI_AmerInd_AKNatv'] == 1: return 'A/I AK Native' elif row['ERI_Asian'] == 1: return 'Asian' elif row['ERI_Black_Afr.Amer'] == 1: return 'Black/AA' elif row['ERI_HI_PacIsl'] == 1: return 'Haw/Pac Isl.' elif row['ERI_White'] == 1: return 'White' else: return 'Other'
Fungsi ini mengambil satu baris bingkai data sebagai input dan mengembalikan label perlumbaan yang sesuai berdasarkan kriteria yang disediakan.
Untuk mencipta lajur 'race_label' baharu, gunakan fungsi apply() bersama-sama dengan axis=1 parameter untuk menggunakan fungsi label_race pada setiap baris bingkai data.
df['race_label'] = df.apply(label_race, axis=1)
Bingkai data yang terhasil dengan lajur baharu dipaparkan di bawah:
ERI_Hispanic ERI_AmerInd_AKNatv ERI_Asian ERI_Black_Afr.Amer ERI_HI_PacIsl ERI_White \ 0 0 0 0 0 0 1 1 1 0 0 0 0 0 2 0 0 0 0 0 1 3 0 0 0 0 0 1 4 0 0 0 0 0 0 5 0 0 0 0 0 1 6 0 0 1 0 0 1 7 0 0 0 0 1 1 8 0 0 0 1 0 0 9 0 0 0 0 0 1 race_label 0 White 1 Hispanic 2 White 3 White 4 Other 5 White 6 Two or More 7 White 8 Haw/Pac Isl. 9 White
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Lajur Label Perlumbaan Baharu dalam Panda Berdasarkan Lajur Berbilang Etnik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!