Memahami Lelaran Baris dalam Panda
Apabila bekerja dengan data dalam Python, pustaka Pandas menawarkan alat yang berkuasa untuk manipulasi dan analisis data. Satu tugas biasa ialah mengulangi baris DataFrame untuk mengakses dan memproses elemen individu mengikut nama lajur. Panduan ini akan membantu anda memahami cara mencapainya dengan mudah.
Kami akan meneroka kaedah yang berbeza untuk lelaran baris dalam Pandas DataFrame, termasuk contoh dan penjelasan praktikal. Pada akhirnya, anda akan mempunyai pemahaman yang jelas tentang cara menggunakan kaedah ini dengan berkesan dalam projek anda sendiri.
Perintah | Penerangan |
---|---|
iterrows() | Menghasilkan lelaran yang menghasilkan data indeks dan baris untuk setiap baris dalam DataFrame. |
itertuples() | Mengembalikan iterator yang menghasilkan nametuple baris DataFrame, memberikan lelaran baris yang lebih pantas. |
apply() | Menggunakan fungsi di sepanjang paksi tertentu (baris atau lajur) DataFrame. |
axis | Parameter dalam fungsi apply() untuk menentukan paksi, dengan 0 untuk lajur dan 1 untuk baris. |
enumerate() | Menambah pembilang pada lelaran, berguna untuk mendapatkan indeks semasa lelaran. |
f-string | Sintaks pemformatan dalam Python untuk membenamkan ungkapan dalam literal rentetan menggunakan pendakap kerinting {}. |
Mengulang Baris dengan Panda: Kaedah Diterangkan
Skrip yang disediakan menunjukkan kaedah yang berbeza untuk lelaran ke atas baris dalam Pandas DataFrame. Kaedah pertama menggunakan iterrows() fungsi, yang menjana iterator yang menghasilkan data indeks dan baris untuk setiap baris. Kaedah ini membolehkan anda mengakses elemen baris mengikut nama lajurnya, menjadikannya mudah untuk mencetak atau memanipulasi nilai tertentu. Kaedah kedua, menggunakan itertuples(), adalah serupa tetapi menawarkan prestasi yang lebih baik dengan mengembalikan nametuple untuk setiap baris. Pendekatan ini lebih pantas kerana ia mengelakkan overhed menjana objek Siri untuk setiap baris, yang amat bermanfaat untuk set data yang besar.
Kaedah lain yang ditunjukkan ialah apply() fungsi, yang menggunakan fungsi tertentu di sepanjang paksi tertentu DataFrame. Dengan menetapkan parameter paksi kepada 1, fungsi digunakan pada setiap baris. Kaedah ini serba boleh, membolehkan anda menentukan fungsi tersuai untuk operasi mengikut baris. Akhir sekali, penggunaan enumerate() dengan iterrows() menyediakan cara untuk menjejaki indeks baris semasa lelaran. Ini boleh berguna untuk tugas yang memerlukan nombor baris atau untuk operasi yang lebih kompleks di mana kedudukan dalam DataFrame penting. Bersama-sama, kaedah ini menawarkan pelbagai pilihan untuk lelaran ke atas baris DataFrame, memenuhi keperluan berbeza berdasarkan prestasi dan kefungsian.
Menggunakan iterrows() untuk Mengulang Baris dalam Pandas DataFrame
Python dengan perpustakaan Pandas
import pandas as pd
# Create a sample DataFrame
data = {'c1': [10, 11, 12], 'c2': [100, 110, 120]}
df = pd.DataFrame(data)
# Iterate over rows using iterrows()
for index, row in df.iterrows():
print(row['c1'], row['c2'])
# Output:
# 10 100
# 11 110
# 12 120
Mengulang dengan itertuples() untuk Prestasi yang Lebih Baik
Python dengan perpustakaan Pandas
import pandas as pd
# Create a sample DataFrame
data = {'c1': [10, 11, 12], 'c2': [100, 110, 120]}
df = pd.DataFrame(data)
# Iterate over rows using itertuples()
for row in df.itertuples():
print(row.c1, row.c2)
# Output:
# 10 100
# 11 110
# 12 120
Mengakses Baris dengan Kaedah DataFrame apply()
Python dengan perpustakaan Pandas
import pandas as pd
# Create a sample DataFrame
data = {'c1': [10, 11, 12], 'c2': [100, 110, 120]}
df = pd.DataFrame(data)
# Define a function to apply to each row
def print_row(row):
print(row['c1'], row['c2'])
# Apply the function to each row
df.apply(print_row, axis=1)
# Output:
# 10 100
# 11 110
# 12 120
Menggunakan DataFrame.iterrows() dan Enumerate
Python dengan perpustakaan Pandas
import pandas as pd
# Create a sample DataFrame
data = {'c1': [10, 11, 12], 'c2': [100, 110, 120]}
df = pd.DataFrame(data)
# Iterate over rows using iterrows() and enumerate()
for i, (index, row) in enumerate(df.iterrows()):
print(f'Index: {index}, Row {i}: {row["c1"]}, {row["c2"]}')
# Output:
# Index: 0, Row 0: 10, 100
# Index: 1, Row 1: 11, 110
# Index: 2, Row 2: 12, 120
Meneroka Kaedah Tambahan untuk Lelaran Baris dalam Panda
Di luar kaedah yang biasa digunakan seperti iterrows() dan itertuples(), terdapat teknik lain yang tersedia untuk lelaran pada baris DataFrame dalam Pandas. Satu kaedah sedemikian adalah menggunakan iloc pengindeks. The iloc pengindeks membolehkan anda mengakses baris dan lajur dengan pengindeksan berasaskan lokasi integer, menjadikannya alat yang berkuasa untuk lelaran. Kaedah ini amat berguna apabila anda perlu melakukan operasi pada baris atau lajur tertentu tanpa menukarnya kepada Siri atau nametuple. Dengan menggunakan gelung dalam kombinasi dengan iloc, anda boleh mengakses dan memanipulasi elemen baris dengan cekap.
Pendekatan lain melibatkan penggunaan DataFrame.query() kaedah untuk menapis baris berdasarkan keadaan tertentu sebelum lelaran. Kaedah ini membolehkan penapisan data yang ringkas dan boleh dibaca menggunakan sintaks pertanyaan seperti SQL. Selepas menapis DataFrame, anda kemudian boleh menggunakan mana-mana kaedah lelaran yang dibincangkan sebelum ini untuk memproses baris yang ditapis. Selain itu, pemahaman senarai dalam Python boleh digabungkan dengan operasi Pandas untuk transformasi dan lelaran data yang lebih kompleks. Teknik lanjutan ini menawarkan fleksibiliti dan kecekapan yang lebih besar, terutamanya apabila berurusan dengan set data yang besar atau tugas manipulasi data yang kompleks.
Soalan Lazim Mengenai Mengulang Baris dalam Panda
- Apakah cara paling berkesan untuk mengulangi baris DataFrame?
- The itertuples() kaedah secara amnya adalah yang paling cekap untuk mengulangi baris kerana ia mengelakkan overhed mencipta objek Siri untuk setiap baris.
- Bagaimanakah saya boleh mengubah suai nilai DataFrame semasa lelaran?
- Anda boleh gunakan loc atau iloc dalam gelung anda untuk mengubah suai nilai DataFrame secara langsung.
- Apakah perbezaan antara iterrows() dan itertuples()?
- iterrows() mengembalikan setiap baris sebagai Siri, manakala itertuples() mengembalikan setiap baris sebagai nametuple, yang lebih pantas dan lebih cekap memori.
- Bolehkah saya menggunakan pemahaman senarai dengan baris DataFrame?
- Ya, pemahaman senarai boleh digunakan untuk transformasi data yang lebih padat dan cekap.
- Bagaimanakah saya menapis baris sebelum lelaran?
- Menggunakan query() kaedah atau pengindeksan Boolean untuk menapis baris berdasarkan syarat.
- Adakah mungkin untuk berulang pada lajur tertentu sahaja?
- Ya, anda boleh mengulangi lajur tertentu dengan mengaksesnya menggunakan df[column_name] dalam gelung anda.
- Bagaimanakah cara saya menggunakan fungsi pada setiap baris?
- Menggunakan apply() kaedah dengan parameter paksi ditetapkan kepada 1.
- Apakah implikasi prestasi penggunaan iterrows()?
- iterrows() adalah lebih perlahan berbanding dengan itertuples() dan harus digunakan apabila kebolehbacaan objek Siri diperlukan berbanding prestasi.
Pemikiran Akhir tentang Lelaran Baris DataFrame
Menguasai kaedah berbeza untuk mengulang baris dalam Pandas DataFrame membolehkan lebih fleksibiliti dan kecekapan dalam tugas manipulasi data. Sama ada anda memilih iterrows() untuk kebolehbacaan, itertuples() untuk prestasi, atau apply() kaedah untuk fungsi tersuai, memahami teknik ini akan meningkatkan keupayaan anda untuk mengendalikan set data yang besar dengan berkesan. Percubaan dengan kaedah ini untuk menentukan yang paling sesuai dengan keperluan khusus dan aliran kerja anda.