Mengganti nama kolom dalam bingkai data panda adalah proses yang umum. Pelajari tentang empat cara berbeda untuk mengganti nama kolom panda.
panda Ini adalah pustaka Python yang populer untuk analisis data. Data yang perlu kami analisis sering kali tersedia dalam berbagai format, termasuk csv, file tsv, database relasional, dan banyak lagi. Dan Anda perlu melakukan beberapa pemeriksaan awal pada data, menangani nilai yang hilang, dan menyiapkan data untuk analisis lebih lanjut.
Dengan Panda, Anda dapat:
- Menyerap data dari berbagai sumber
- Jelajahi kumpulan data dan tangani nilai-nilai yang hilang di dalamnya
- Menganalisis kumpulan data untuk mendapatkan wawasan
Untuk semua proyek analisis data, Anda akan sering membuat bingkai data dari struktur data Python seperti kamus. Atau akan membaca data dari sumber lain, seperti file csv ke dalam bingkai data.
Bingkai data adalah struktur data dasar di panda. Ini berisi catatan di sepanjang baris dan berbagai bidang atau atribut di sepanjang kolom.
Namun, Anda mungkin harus mengganti nama kolom – untuk membuatnya lebih deskriptif dan meningkatkan keterbacaan. Di sini, Anda akan mempelajari empat cara berbeda untuk mengganti nama kolom. Ayo mulai!
Buat Bingkai Data Pandas
Anda dapat mengikuti tutorial di lingkungan notebook Jupyter dengan panda terpasang. Atau Anda dapat melanjutkan google colab.
Pertama, kita akan membuat kerangka data panda dan mengerjakannya untuk tutorial selanjutnya.
Ini kamus book_dict
:
books_dict = {
"one": (
"Atomic Habits",
"His Dark Materials",
"The Midnight Library",
"The Broken Earth",
"Anxious People",
),
"two": (
"James Clear",
"Philip Pullman",
"Matt Haig",
"N.K.Jemisin",
"Fredrik Backman",
),
"three": ("Nonfiction", "Fantasy", "Magical Realism", "Fantasy", "Fiction"),
"four": (4, 5, 3, 5, 4),
}
Kami pertama-tama akan mengimpor panda dan kemudian membuat bingkai data df
dari books_dict
.
import pandas as pd
NB: Kami akan terus kembali ke sel kode berikutnya – untuk membuat salinan awal bingkai data – sebelum mengganti nama kolom.
df = pd.DataFrame(books_dict)
Kita bisa gunakan df.head()
untuk mendapatkan beberapa baris pertama dari bingkai data df
. Secara default, ini mengembalikan lima baris pertama. Di Sini df
hanya berisi lima baris; Jadi saat menggunakan df.head()
Kami mendapatkan seluruh bingkai data.
df.head()

Kami melihat bahwa nama kolom saat ini adalah kunci kamus. Tapi ini tidak terlalu deskriptif. Jadi mari kita ganti namanya! 👩🏫
Metode untuk mengganti nama kolom di panda
Sekarang mari kita lihat berbagai cara untuk mengganti nama kolom di panda:
- situasi
columns
atribut dataframe untuk mencantumkan nama kolom baru - Gunakan metode rename() dalam bingkai data
- Gunakan str.replace untuk mengganti nama satu atau lebih kolom
- menggunakan
set_axis()
metode pada bingkai data
Tetapkan atribut kolom
Untuk bingkai data apa pun, file columns
Atribut berisi daftar nama kolom:
df.columns
# Index(('one', 'two', 'three', 'four'), dtype='object')
Mari ganti nama kolom untuk menunjukkan apa yang diwakili oleh setiap bidang dan kemudian beri label df.head()
Untuk melihat hasilnya:
df.columns = ('Title','Author','Genre','Rating')
df.head()

menggunakan metode ganti nama()
Untuk mengganti nama kolom di panda, Anda dapat menggunakan ekstensi rename()
metode dengan sintaks:
df.rename(column={mapping})
Penunjukan ini dapat berupa kamus dari bentuk berikut:
{'old_col_name_1':'new_col_name_1', 'old_col_name_2':'new_col_name_2',...,
'old_col_name_n':'new_col_name_n'}
Mari berkreasi df
dari books_dict
kamus:
df = pd.DataFrame(books_dict)
menggunakan rename()
metode dengan sintaks di atas, kita dapatkan df_1
. Ini adalah salinan bingkai data dengan kolom yang diganti namanya.
df_1 = df.rename(columns={'one':'Title','two':'Author','three':'Genre','four':'Rating'})
df_1.head()
Jadi nama kolom df_1
itu telah dimodifikasi:

Tapi nama kolom data asli df
Jangan berubah:
df.head()

Karena metode ini memungkinkan kami menyediakan pemetaan antara nama kolom lama dan baru, kami dapat menggunakannya untuk mengganti nama kolom tunggal dan ganda.
Ganti nama kolom di tempatnya
Bagaimana jika Anda ingin memodifikasi kerangka data yang ada – tanpa membuat salinan baru?
Untuk melakukan ini, Anda dapat menyesuaikan inplace
Itu sama dengan True
dalam metode kontak.
df.rename(columns={'one':'Title','two':'Author','three':'Genre','four':'Rating'},inplace=True)
df.head()
Ini akan mengganti nama kolom dari bingkai data asli df
:

Sejauh ini kita telah melihat caranya:
- Ganti nama kolom dengan menyediakan kamus yang memetakan nama kolom lama ke nama kolom baru
- Ganti nama kolom di tempat tanpa membuat bingkai data baru
Anda dapat menggunakan metode penggantian nama dengan cara lain juga.
Cara lain untuk mengganti nama kolom
Mari ganti nama kolom sehingga menjadi huruf besar:
df = pd.DataFrame(books_dict)
df.columns = ('TITLE','AUTHOR','GENRE','RATING')
df.head()
bingkai data df
Sekarang terlihat seperti ini:

Katakanlah kita ingin mengubah masing-masing nama kolom ini menjadi header case. Alih-alih menyediakan kamus untuk setiap nama kolom, kita dapat mendefinisikan fungsi atau memanggil metode pada objek seperti yang ditunjukkan:
df.rename(str.title,axis='columns',inplace=True)
df.head()

Di sini, kami mengatur axis
ke 'columns'
dan gunakan str.title
Mengubah semua nama kolom menjadi heading case.
Gunakan str.replace() dalam string nama kolom
Seperti biasa, jalankan sel kode berikut untuk menghasilkan bingkai data dari kamus:
df = pd.DataFrame(books_dict)
Dengan Python, saya akan menggunakan a replace()
metode dengan sintaks str.replace(this, with_this)
mendapatkan menyalin Dari seri dengan perubahan yang diperlukan. Ini contohnya:
>>> str1 = 'Marathon'
>>> str1.replace('Mara','Py')
'Python'
Anda tahu bahwa atribut kolom berisi daftar string yang berisi nama kolom. Jadi Anda bisa menelepon str.replace('old_column_name','new_column_name')
Seperti yang:
df.columns = df.columns.str.replace('one','Title')
df.head()

Di sini kami hanya mengganti nama kolom “satu” menjadi “judul”, sehingga nama kolom lainnya tetap tidak berubah.
Sekarang mari ganti nama kolom lain menggunakan metode yang sama:
df.columns = df.columns.str.replace('two','Author')
df.columns = df.columns.str.replace('three','Genre')
df.columns = df.columns.str.replace('four','Rating')
df.head()

Metode penggantian nama kolom ini berguna saat Anda hanya perlu mengganti nama satu atau sebagian kecil kolom.
menggunakan metode set_axis()
Mari kembali ke versi awal bingkai data:
df = pd.DataFrame(books_dict)
Anda juga dapat menggunakan file set_axis()
Cara untuk mengganti nama kolom. Sintaksnya adalah sebagai berikut:
df.set_axis((list_of_column_names),axis='columns')
Secara default, ini adalah file set_axis()
Metode mengembalikan salinan bingkai data. Tetapi jika Anda ingin memodifikasi bingkai data di tempat, Anda dapat mengaturnya copy
ke False
.
df = df.set_axis(('Title','Author','Genre','Rating'),axis='columns',copy=False)
df.head()

Kesimpulan
Berikut ulasan tentang berbagai cara untuk mengganti nama kolom dalam kerangka data panda:
- untuk kerangka data sampel
df
atribut kolomdf.columns
adalah daftar nama kolom. Untuk mengganti nama kolom, Anda dapat mengatur atribut ini pada daftar nama kolom baru. - itu
rename()
Cara mengganti nama kolom bekerja dengan sintaks:df.rename(columns={mapping})
Di manamapping
Mengacu pada pemetaan dari nama kolom lama ke nama kolom baru. Anda juga dapat menggunakan filerename()
Dengan mendefinisikan fungsi yang berlaku untuk semua nama kolom:df.rename(function or method call, axis='columns')
. - Hanya cara Anda menggunakannya
replace()
Di utas Python, Anda dapat menggunakandf.columns.str.replace('old_column_name', 'new_column_name')
untuk mengganti nama kolom. - Cara lain untuk mengganti nama kolom adalah dengan menggunakan metode set_axis dengan sintaks:
df.set_axis(list_of_col_names,axis='columns')
.
Itu saja untuk tutorial ini! Lihat daftar buku catatan kolaboratif analisis data kami.