Eğer veri bilimiyle uğraşıyorsanız farklı dosya formatlarıyla çalışmak zorunda kalabilirsiniz. Çünkü gelen veriler her zaman csv formatında olmayacaktır. Bu farklı dosya formatlarına hakim olmak, veri bilimi endüstrisindeki başarınız için kritik bir öneme sahiptir. İçinde yaşadığımız modern dijital çağ, birden fazla veri kaynağından toplanan her türlü dosya formatıyla çalışmaya zorluyor. Python ile bu yaygın dosya biçimleri nasıl okunur, bu yazımızda öğrenelim.
İçindekiler
Python ile Zip Dosyası Okuma
Python ile yaygın dosya biçimleri yazısının ilk örneği olan ZIP ile başlayacağız. Zip dosyaları adeta kod yaratıcılarının bir armağanı, depolama alanımızı ve zamanımızı korumak için gökten düşmüş bir mucize gibidir. Teknik olarak konuşacak olursak, ZIP kayıpsız veri sıkıştırmayı destekleyen bir arşiv dosyası biçimidir. Bu, dosyayı sıkıştırma ya da açma işleminde verilerinizin kaybolma konusunda endişelenmenize gerek olmadığı anlamına gelir.
Python ile bir ZIP dosyası nasıl açılır, bakalım. Bunun için Python’daki zip dosya kütüphanesine ihtiyacınız olacak.
# ZipFile kütüphanesini yükleyelim from zipfile import ZipFile dosya = './cola_public.zip' with ZipFile(dosya,'r') as zip: zip.printdir() zip.extractall()
Yukarıdaki kodu çalıştırdığınızda şöyle bir çıktı almalısınız:
Python ile Metin Dosyası Okuma
Metin dosyaları, veri depolamak için kullanılan en yaygın dosya biçimlerinden birisidir. Python, metin dosyalarından veri okumayı çok kolaylaştırır.
Python, dosyaları okumanız için open() fonksiyonu sağlar. Metin dosyasını okumak için dosya erişim modu “r” dır. Diğer erişim modları ise şunlardır:
- ‘w’ – bir dosyaya yazma
- ‘r+’ veya ‘w+’ – bir dosyayı okuma ve yazma
- ‘a’ – mevcut olan bir dosyaya eklemek
- ‘a+’ – dosya okunduktan sonra ekleme yapmak
Bunların dışında Python metin dosyasından veri okumak için bizlere üç fonksiyon sağlar:
- read(n): Bu fonksiyon, metin dosyalarından verilen n parametresi kadar bayt okur. Eğer bu parametre verilmezse, varsayılan olarak bütün dosyayı okur.
- readline(n): Bu fonksiyon, dosyadan n bayt okumanıza izin verir, ancak birden fazla satırı okuyamaz.
- readlines(): Bu fonksiyon, dosyadaki tüm bilgileri okur ancak read() fonksiyonundan farklı olarak, ayraçlarla uğraşmaz ve bunları liste biçiminde de yazdırmaz.
with open(r'./teknoloji.txt','r') as f: print(f.read())
Yukarıdaki Python kodunu çalıştırdığımızda şöyle bir çıktı elde ederiz:
read() fonksiyonu, dosyadaki tüm verileri doğru yapılandırılmış biçimde içeri aktardı.
with open(r'./teknoloji.txt','r') as f: print(f.read(10))
Eğer read() fonksiyonuna parametre olarak 10 sayısını verirsek .txt dosyasındaki ilk 10 karakteri bize getirecektir.
with open(r'./teknoloji.txt','r') as f: print(f.readline())
Eğer readline() fonksiyonunu kullanmış olsaydık, bize sadece ilk satırı getirecekti.
with open(r'./teknoloji.txt','r') as f: print(f.readlines())
readlines() fonksiyonunu yazdığımızda ise şöyle bir çıktı alıyoruz:
Python ile CSV Dosyaları Okuma
CSV yani virgülle ayrılmış değer dosyası, bir veri bilimcinin çalışabileceği en yaygın dosya biçimi olarak görülebilir. Bu dosyalar, değerleri ayırmak için ayırıcı olarak “,” kullanılır ve CSV dosyasındaki her satır bir veri kaydıdır.
Python ile CSV dosyasını okumak için kullanacağımız kütüphane Pandas kütüphanesidir.
import pandas as pd df = pd.read_csv(r'./Tweets.csv') print(df.sample(10))
Python ile Excel Dosyaları Okuma
Birçoğunuz Excel dosyalarına ve bunların verileri depolamak için neden bu kadar yaygın olarak kullanıldığına aşinasınızdır. Bu yüzden direkt Python ile Pandas kütüphanesini kullanarak nasıl okuyoruz, görelim.
Pandas kütüphanesinin Excel dosyalarını okumak için tıpkı CSV dosyalarında olduğu gibi read_excel() fonksiyonu bulunmaktadır.
# read Excel file into a DataFrame df = pd.read_excel(r'./Importing files/World_city.xlsx') # print values df.sample(10)
Python ile JSON Dosyaları Okuma
JSON (Javascript Nesne Gösterimi) dosya biçimleri veri depolamak için oldukça kullanışlı ve okunabilirdir. Makinelerin bu dosyaları ayrıştırması ve oluşturması kolaydır ve JavaScprit programlama dilini temel alır.
JSON dosyaları, Python’daki sözlük mantığına oldukça benzerdir. Veriler “{}” içinde depolanır. En büyük artısı ise, bir programlama dilinden bağımsız olmalıdır, yani Python, C ve hatta Java dili ile programlama dili ile kullanılabilirler.
JSON dosyaları şöyle gözükür.
Python, JSON dosyalarını okumak için json modülü sağlar. Metin dosyalarında olduğu gibi JSON dosyalarını da çok kolay bir şekilde okuyabilirsiniz. Metin dosyalarından farklı olarak json.load() fonksiyonu kullanılıyor ve bu fonksiyon bir JSON sözlüğü döndürüyor.
Daha sonra pandas kütüphanesi kullanarak yine çok kolay bir şekilde dataframe haline getirebilirsiniz.
import pandas as pd import json # open json file with open('./free-bike-status-1.json','r') as file: data = json.load(file) # json dictionary print(type(data)) # loading into a DataFrame df_json = pd.DataFrame(data)
Python ile Pickle Dosyaları Okuma
Pickle dosyaları, Python nesnelerinin serileştirilmiş formunu saklamak için kullanılır. Bu, list, set, tuple, dict vb. nesnelerin diskte saklanmadan önce bir karakter akışına dönüştürüldüğü anlamına gelir. Bunlar özellikle makine öğrenme modelinizi eğittiğinizde ve daha sonra tahminde bulunmak için bunları kaydetmek istediğinizde oldukça kullanışlıdır.
Python ile bu yükleme işlemi pickle.load() fonksiyonu ile yapılıyor. Ancak pickle dosyasını Python’da open() ile açtığınızda, ikili dosyası okumak için ‘rb’ parametresini sağlamanız gerekir.
import pickle with open('./Importing files/sample_pickle.pkl','rb') as file: data = pickle.load(file) # pickle data print(type(data)) df_pkl = pd.DataFrame(data)