Python ile CSV Dosyalarında Verileri Nasıl Filtreleriz?

0 Réponses 2 Vues
·
Participants
Auteur de la discussion #1
Python, verinizi yönetmek ve analiz etmek için güçlü bir araçtır. Özellikle CSV (Virgülle Ayrılmış Değerler) dosyaları, veri saklama ve paylaşma açısından oldukça yaygındır. Peki, bu veriler arasından sadece belirli kriterlere uyanları nasıl seçeriz? İşte detaylar:

İlk olarak, Python'da CSV dosyalarını işlemek için en yaygın kullanılan kütüphane csv modülüdür. Bu modül, dosyaları satır satır okuyarak veya yazarak temel işlemleri kolayca yapmamıza olanak tanır. Ayrıca, pandas kütüphanesi ise daha gelişmiş ve veriye dayalı filtreleme, analiz ve görselleştirme işlemlerinde tercih edilir.

Örneğin, diyelim ki elimizde "veriler.csv" adlı bir dosya var ve bu dosyada "Yaş" sütunu üzerinden 30'dan büyük olanları filtrelemek istiyoruz. İşte temel bir örnek:

CODE
123456789101112python
import csv

with open('veriler.csv', mode='r', encoding='utf-8') as file:
    reader = csv.DictReader(file)
    filtered_rows = [row for row in reader if int(row['Yaş']) > 30]

[b]Filtrelenmiş veriyi yeni dosyaya yazmak[/b]
with open('filtreli_veriler.csv', mode='w', encoding='utf-8', newline='') as outfile:
    writer = csv.DictWriter(outfile, fieldnames=reader.fieldnames)
    writer.writeheader()
    writer.writerows(filtered_rows)


Yukarıdaki kodda, önce CSV dosyası satır satır okunuyor, ardından "Yaş" değeri 30'dan büyük olanlar yeni listeye ekleniyor. Bu yöntem, basit ve hızlıdır, ancak büyük veri setlerinde performans sorunları yaşanabilir.

Daha gelişmiş filtreleme ve analizler için pandas kullanmak daha uygun olur:

CODE
123456python
import pandas as pd

df = pd.read_csv('veriler.csv')
filtreli_df = df[df['Yaş'] > 30]
filtreli_df.to_csv('filtreli_veriler.csv', index=False)


Burada, pandas DataFrame yapısı sayesinde filtreleme, sıralama ve diğer veri manipülasyonları çok daha sezgisel hale gelir. Ayrıca, büyük veri kümelerinde performans açısından da avantaj sağlar.

Sonuç olarak, Python'da CSV filtreleme işlemi, veri setinin büyüklüğüne ve ihtiyaçlara göre farklı yaklaşımlarla gerçekleştirilebilir. Bu temel örnekler, başlangıç seviyesinden ileri seviyeye doğru gelişim için iyi bir başlangıç noktası sunar.

Vous devez être connecté pour répondre.

Utilisateurs qui consultent cette discussion (Total: 2, Membres: 2, Invités: 0)
Total: 2 (membres: 2, invités: 0)
0 citations sélectionnées