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.
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:
Bu csv dosyamızı okumak için kodlarımız:
import csv with open('ornekcsv.txt','r') as csv_file: csv_reader = csv.reader(csv_file, delimiter=',') line_count = 0 for row in csv_reader: if line_count == 0: print(f'Sütun isimleri: {", ".join(row)}') line_count += 1 print() else: print(f'\t{row[0]} {row[1]} departmanında çalışıyor ve {row[2]} ayında doğdu.') line_count += 1 print() print(f'{line_count} satır işlendi')
Ekran çıktımız ise aşağıdaki gibidir.
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:
import csv with open('yeni.csv', mode='w') as yeni_dosya: yeni_yazici = csv.writer(yeni_dosya, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) yeni_yazici.writerow(['Muhammed DINCER', 'Mühendis', 'Agustos']) yeni_yazici.writerow(['Ali Veli', 'IT', 'Mart'])
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.
[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.
csv kütüphanesi nasıl kurulur
csv kütüphanesi Python da temel kütüphanelerden olduğu için import csv dediğinizde kütüphaneyi projeye eklemiş olursunuz.
merhaba csv dosyasını çağırdığımda böyle bir dosya yok diye hata veriyor. dosya adını doğru yazıyorum. doysanın kayıt yeri etkili oluyor mu bu durumda dosyayı nereye kaydetmeliyim
Dosyanın tam yolunu girerseniz hata vermez. Kodlarınızı ve csv dosyasının yerini iletebilirseniz daha iyi yardımcı olabilirim.