Python ile İki CSV Dosyasını Nasıl Birleştirirsin?

Giriş

Veri analizi ve yönetimi ile uğraşan her yazılımcının başvurması gereken önemli bir teknik, CSV (Comma-Separated Values) dosyalarının işlenmesidir. CSV dosyaları, veri depolama için oldukça yaygın bir format olup, farklı veri kaynaklarından gelen bilgileri saklamak ve analiz etmek için sıkça kullanılır. Ancak, bazen verileri daha anlamlı hale getirmek için birden fazla CSV dosyasını birleştirmek gerekebilir. Bu yazıda, Python kullanarak iki CSV dosyasını nasıl birleştirebileceğinizi adım adım öğreneceksiniz.

CSV Dosyalarının Temel Özellikleri

CSV dosyaları, her satırın bir kayıt olarak kabul edildiği, verilerin virgülle ayrıldığı düz metin dosyalarıdır. Alanlar arasında virgül dışında başka ayırıcılar da kullanılabilse de, en yaygın yöntem virgül kullanmaktır. Bu dosya formatı, basitliği ve geniş uygulama alanı sayesinde veri transferinde oldukça etkilidir.

Python, CSV dosyaları ile çalışmayı son derece kolaylaştıran yerleşik bir ‘csv’ modülü sunmaktadır. Bu modül, CSV dosyalarını okuma, yazma ve düzenleme işlemlerini güvenli ve etkili bir şekilde gerçekleştirmenize olanak tanır. Ayrıca, pandas kütüphanesi, daha karmaşık veri işleme işlemleri için güçlü bir alternatif sunar.

İki veya daha fazla CSV dosyasını birleştirmek için, bu dosyaların ortak sütunlara sahip olması önemlidir. Aksi takdirde, verilerin bir araya getirilmesi zorlaşacaktır. Örneğin, iki dosya da ‘ID’ veya ‘Email’ gibi benzersiz bir alan içeriyorsa, bu alanlar üzerinden birleştirme yapabilirsiniz.

Python ile İki CSV Dosyasını Birleştirme Yöntemleri

İki CSV dosyasını birleştirmenin temel yollarından biri, Python’un yerleşik ‘csv’ modülünü kullanmaktır. Ancak, daha kapsamlı veri analizi ve birden fazla dosyayı bir arada yönetme ihtiyacı için genellikle ‘pandas’ kütüphanesini tercih etmek daha mantıklıdır. Bu bölümde her iki yöntemi de inceleyeceğiz.

Öncelikle, yerleşik ‘csv’ modülünü kullanarak basit bir birleştirme işlemi gerçekleştirelim. İki CSV dosyamızın olduğunu varsayalım: ‘data1.csv’ ve ‘data2.csv’. Bu dosyaların her birinde ‘ID’ ve ‘Value’ sütunları bulunsun. Bu dosyaları birleştirmek için önce her iki dosyayı da okuyup daha sonra birleştirip sonuçları yazalım.

İlk olarak, ‘data1.csv’ dosyasını okuyalım:

import csv

with open('data1.csv', mode='r') as file1:
    reader1 = csv.DictReader(file1)
    data1 = list(reader1)

Şimdi, ‘data2.csv’ dosyasını okuyup verileri birleştirelim:

with open('data2.csv', mode='r') as file2:
    reader2 = csv.DictReader(file2)
    data2 = list(reader2)

combined_data = data1 + data2

Son olarak, birleştirilmiş verileri yeni bir CSV dosyasına yazalım:

with open('combined_data.csv', mode='w', newline='') as combined_file:
    fieldnames = ['ID', 'Value']
    writer = csv.DictWriter(combined_file, fieldnames=fieldnames)

    writer.writeheader()
    writer.writerows(combined_data)

Pandas ile İki CSV Dosyasını Birleştirme

Pandas, veri analizi ve manipülasyonu için son derece güçlü ve kullanışlı bir kütüphanedir. İki CSV dosyasını birleştirmek için pandas kullanmanın avantajı, verileri daha karmaşık bir mantıkla birleştirebilme yeteneğidir. Örneğin, ‘merge’ fonksiyonu sayesinde, her iki dosya arasındaki ortak sütunları kullanarak birleştirme işlemi gerçekleştirebilirsiniz.

Pandas ile iki CSV dosyasını birleştirmek için önce pandas kütüphanesini yüklemeniz gerekir:

import pandas as pd

Daha sonra, her iki CSV dosyasını okumak için ‘read_csv’ fonksiyonunu kullanabilirsiniz:

data1 = pd.read_csv('data1.csv')
data2 = pd.read_csv('data2.csv')

Birleştirme işlemini gerçekleştirmek için ‘merge’ fonksiyonunu kullanarak ortak sütunu belirtebilirsiniz:

merged_data = pd.merge(data1, data2, on='ID')

Bu işlem, her iki dosyada bulunan ‘ID’ sütununu kullanarak veri setlerini birleştirir. Sonuçları yeni bir CSV dosyasına yazmak için ise ‘to_csv’ fonksiyonunu kullanabilirsiniz:

merged_data.to_csv('merged_data.csv', index=False)

Hata Çözümleme ve Öneriler

İki CSV dosyasını birleştirirken bazı yaygın hatalarla karşılaşabilirsiniz. En sık karşılaşılan hatalardan biri, dosyaların farklı yapıda olmasıdır. Örneğin, bir dosyada bir sütun adının eksik olması veya farklı veri tiplerinin kullanılması bu hatalara sebep olabilir. Bu tür durumlarda, dosyaları öncelikle kontrol edip, uyumsuzlukları düzeltmeniz önemlidir.

Ayrıca, birleştirme işlemi sırasında hangi tür birleştirme yapmak istediğinizi de belirlemeniz gerekir. İç içe birleştirme (inner join) yapmak istiyorsanız, yalnızca her iki dosyada da bulunan kayıtlar alınır. Dışarıdan birleştirme (outer join) ise, her iki dosya arasındaki tüm verileri alınmasına olanak tanır. Pandas’ın ‘how’ parametresi bu durumu yönetmenizi sağlar:

merged_data = pd.merge(data1, data2, on='ID', how='outer')

Böylece, iki CSV dosyasını birleştirme işlemini tamamladıktan sonra, elde edilen veri setinin analizini de gerçekleştirebilirsiniz. Unutmayın ki, verinizi iyi anlayıp analiz etmek, sonucun doğruluğunu artıracaktır.

Sonuç

Python ile CSV dosyalarını birleştirmek, veri analizi ve yönetimi için kritik bir beceridir. Bu yazıda, yerleşik ‘csv’ modülünü ve pandas kütüphanesini kullanarak iki CSV dosyasını nasıl birleştirebileceğinizi öğrendiniz. Her iki yöntemin de avantajları vardır ve hangi yöntemi seçeceğiniz, projenizin gereksinimlerine bağlıdır.

CSV dosyalarını birleştirmenin yanı sıra, pandas ile daha karmaşık veri manipülasyonları yapabilir, verileri filtreleyebilir ve analiz edebilirsiniz. Python ile veri bilimi ve analizi alanında ilerlemek istiyorsanız, bu yazıda öğrendikleriniz size yol gösterecektir.

Elde ettiğiniz verileri kendi projelerinizde deneyerek pekiştirin. İş süreçlerinizi kolaylaştıracak ve verilerinizi daha anlamlı hale getirecek bu teknik, Python’da yetkinliğinizi artıracak ve sizi bir adım ileri taşıyacaktır.

Scroll to Top