csv dosyalar öne çıkan görsel

Python ile CSV Dosya Okuma ve Yazma

Merhaba arkadaşlar, Yapay Zeka‘ya başlarken önce bir Veri Bilimi öğrenmek gerekiyor. Bu veri bilimine giriş de de csv dosyaları ön plana çıkıyor. Hadi gelin bakalım csv nedir nasıl kullanılır..

CSV Dosyası Nedir?

CSV dosyası adını Comma Seperated Values File’ın kısaltılmışından almaktadır. Türkçe karşılığı Virgülle ayrılmış değerler dosyasıdır. Verileri düzenlemek/yapılandırmak için belirli bir yapı kullanan düz metin dosyası türüdür. Metin dosyası olduğundan sadece ASCII veya Unicode karakterleri destelemektedir. Emoji’dir görseldir desteklememektedir.

Bir CSV dosyasının yapısı isimlerle meydana gelmektedir. Örneği aşağıdaki gibidir.

örnek bir csv yapısı

Bu örnekte dikkat edin, her bir veri parçası virgülle ayrılmıştır. Normal bir csv yapısında, ilk satır her bir veri parçasını tanımlar. Bundan sonraki satırlar verilerdir ve sadece dosya boyutu ile sınırlıdır ve hemen hemen sınırsız diyebiliriz.

Not

Ben örnekte virgül kullandım fakat tek kullanılan virgül değildir. Başka ayırıcılar da kullanılmaktadır. Bunlar: (\t), (:) ve (;) çok kullanılan ayırıcılardır. Fakat bu gibi farklı ayraç kullanımları önceden bilinmesi gerekmektedir.

CSV Dosyaları Nerede Oluşur?

Genelde büyük miktarda veri işleyen programlarda oluşmaktadır. Excel gibi elektronik tablolardan, veritabanlarından da elde edilmektedir ve verileri aktarmak için de kullanılmaktadır. Başka bir örnek olarak ise, bir veri madenciliği analizi sonuçlarını CSV dosyasına aktarabilir ve daha sonra verileri analiz etmek için kullanablirsiniz.

CSV dosyalarını çalıştırmak(okumak) da çok kolaydır. Birçok dil CSV dosyalarını direkt olarak okuyarak çalışabilir. Ben bu makalelerimde Python kullanacağım. Belki çok sonra C# ile uygulama ekleyebilirim.

CSV Dosyalarını Python’un Dahili csv Kütüphanesi ile Okuma

CSV kütüphanesi, CSV dosyalarını hem okuma hem de üzerine yazma işlemini sağlamaktadır.

CSV Dosyası Okuma

Bir CSV dosyasını okuma, csv_reader kullanılarak yapılır. Dosyayı okumak için Python içerisinde bulunan open() metodunu kullanarak metin dosyası olarak açılır. Basit bir örneğimiz aşağıdaki gibidir.

csv dosyamız:

ornek csv dosyası

 

Bu csv dosyamızı okumak için kodlarımız:

Ekran çıktımız ise aşağıdaki gibidir.

python csv dosya okuma örneği ekran görüntüsü

Yukarıda gördüğünüz gibi reader tarafından bize dönen sonuçta ayraç (yani bu örnekte ‘,’ virgül) kaldırılarak sadece string olarak olarak dönmüştür. İlk satırımızda sütun isimleri olduğundan onlar için basit bir if-else bloğu oluşturduk.

Burada reader metotu yerine csv.DictReader metotu kullanılabilir. Şayet kullanılırsa satırlarımızı 0 1 2 diye değil o sütundaki name yani isimlerini verek okuma gerçekleştirilebilir.

csv Kütüphanesi ile CSV Dosyaları Yazma

Burada da csv kütüphanesinin writer metotunu kullanarak yeni bir csv dosyası oluşturacağız.

Kodlarımız aşağıdaki gibi olacaktır:

Burada görmediğimiz quotechar ve quoting parametresi bize yabancı. quotechar parametresi, writer metotuna yazarken alanları aktarmak için hangi karakteri kullanılacağını belirtir.

quoting parametresi ise “csv.QUOTE_MINIMAL” olarak ayarlanırsa, “writerow()” metotu yalnızca ayraç veya quotechar değerlerini içeriyor ise aktarır. Bu varsayılan olan durumdur.

quoting parametresi “csv.QUOTE_ALL” olarak ayarlanırsa, “writerow()” metotu tüm alanları tırnak içine alır. “csv.QUOTE_NONNUMERİC” olarak atanırsa metin verileri içeren tüm alanları tırnak içine alır ve tüm sayısal alanları float tipine dönüştürür. Son olarak da “csv.QUOTE_NONE” olarak ayarlanırsa tırnak işaretleri yerine ayırıclardan kaçar. Bu durumda da “escapechar” parametresine değer sağlamanız gerekmektedir.

Biz yukarıdaki kodlama kısmında da gösterdiğim şekli ile çıktımız şu şekilde olacaktır.

csv dosya yazma işlemi ekran görüntüsü

[the_ad id=”1292″]

Bundan sonraki yazımda biraz daha kullanımı pratik olan Pandas kütüphanesini kullanacağız. Bu yazımdaki örnekleri, parametreleri sizlerde deneyerek farkı görebilirsiniz. Pandas bu konuda daha çok kullanıldığından örneklerine çok fazla ağırlık vermedim. Umarım anlaşılır olmuştur.

Bir cevap yazın