Şu eğitimden: Temel Python Eğitimi
CSV
- [Öğretim Görevlisi] CSV modülüne ve Python'a bakmanın zamanı geldi. Hiçbir şey yüklemenize gerek yok. Python ile birlikte gelir. En üstte CSV'yi içe aktarmanız yeterlidir. Ve işte gidiyorsun. Üzerinde çalışacağımız bir CSV dosyası ekledim ve bu 10_02_us.csv. Ve bu, dünyayı kapsayan coğrafi veri kümelerinde milyonlarca yer adı sağlayan geonames.org'dan bir veri setinden türetilmiştir. Ve bu özel veri seti, ABD'deki her posta kodunu, temsil ettiği şehir veya kasaba hakkındaki bilgileri ve ardından konumunun enlem ve boylamını içerir. Bu dosyayı açık 10_02_us.csv ile okumak için açacağız. Açıkçası okuma modunda açın. Ve sonra bu dosya nesnesini alıp yeni bir csv.reader'a geçireceğiz. Pekala, şimdi, bu okuyucu nesnesi bir liste değil. Türe bakarsanız, aslında bir CSV okuyucu sınıfıdır, ancak bunu bir liste kullanır gibi kullanabiliriz ve bu yinelenebilir. Böylece okuyucu baskı satırında satır için yapabiliriz ve işte başlıyorsunuz. Tüm satırları yazdırırsınız. Şimdi bunda komik bir şey fark edin, bunu tam olarak doğru ayrıştırmadınız, ve bunun nedeni bu, görmeye alışkın olduğunuz geleneksel virgülle ayrılmış, virgülle ayrılmış değer değil. CSV dosyası aslında sekmeyle ayrılmış değerler içerir. Yani bunların hepsi sekmeler. Dolayısıyla, bu çıktıyı, spac eğik çizgi T'yi alıp bir sınırlayıcı argüman olarak ileterek, T'yi tam orada ters eğik çizgi yaparak düzeltebiliriz. Ve sonra tüm bu değerlerin bölündüğünü görüyorsunuz ve varsayılan olarak bu, virgülle ayrılmış değerleri doğru bir şekilde ayrıştıracak. Ancak virgül dışında bir şeyiniz varsa, bu sınırlayıcıyı özellikle koymanız gerekir. Burada yazdırılan ilk satırın başlık olduğunu da görebilirsiniz. Başlığı atlamak isterseniz, CSV okuyucunun ayrıca sonraki adı verilen kullanabileceğiniz düzgün bir işlevi vardır. Yani tek yapmamız gereken bir sonraki okuyucuyu aramak ve sonra bu başlık atlanıyor. Yani okuyucumuz aslında nerede olduğunuzu takip eden bir tür dahili yer imine sahip. Böylece bir sonrakini birden çok kez arayabilirsiniz ve bu sizin için o satırı atlayacaktır. Tabii ki, bunu sadece bir listeye de dönüştürebilirsiniz. Dolayısıyla, liste CSV okuyucusunu söylersek, bir sonrakini aramamıza gerek yok, sadece liste dilimleme sözdizimini bu şekilde kullanabiliriz ve bu da başlığı atlayacaktır. CSV modülünün kesinlikle bir başlık kavramı vardır, bu nedenle bu başlık verilerini kullanmak istiyorsanız, dikte okuyucusunu düşünebilirsiniz. Yani csv. DictReader, aynı sınırlayıcıyı koruyacağız. Pekala, bu başlığın bir veri satırı olarak yazdırılmadığına dikkat edin, ancak aslında bu listedeki her sözlükte anahtar olarak kullanılıyor. Ve bu sözlük listesi, Python'da çalışmak için gerçekten kullanışlı bir veri formatı olabilir. Şimdi bunu bir okuyucu nesnesinden bir liste nesnesine dönüştürelim. Buna sadece veri diyelim. Tamam, şimdi üzerinde çalışabileceğimiz bazı verilerimiz var. Şimdi bazı birinci sınıf gayrimenkuller için piyasadayım. Ve bu yüzden, kendi içlerinde yalnızca birine bölünebilen posta kodlarını bulmakla gerçekten ilgileniyorum. Bilirsin, asal. Bu yüzden daha önce yazdığımız bazı kodları ödünç aldım ve bu sadece 2 ile 99.999 arasındaki tüm asal sayıları alıyor. Posta kodlarının 0 ile başlayabileceğini unutmayın. Yani bir posta kodu 02155 diyelim, memleketim Medford, Massachusetts ise, bu beşe bölünebilen ve bu nedenle asal olmayan 2,155'e eşdeğer olacaktır. Öyleyse bunları yalnızca en önemli konumlara göre filtreleyelim. Bu nedenle, veriler, asal sayılarda int veri posta kodu ise, verilerdeki satır için satıra eşittir. Ayrıca eyalet dışından hiçbir şey satın almak istemiyorum, bu yüzden aramamı Massachusetts ile sınırlayacağım ve satır eyalet kodu MA'ya eşittir. Ve verilerin uzunluğunu yazdıralım. Eyvah, kürek, işte başlıyoruz. 91, yani Massachusetts'te 91 ana posta kodu bulmuşuz gibi görünüyor ve bunların hepsini emlakçıma göndermek için CSV dosyasına geri yazmak istiyorum. Biliyorsunuz, emlakçılar CSV dosyalarını sever. Yani açık 10_02 ile, bunu yazmak için açacağımız ma_prime.csv diyelim, bu F. Tamam. Ve sonra yeni bir CSV yazıcısı, CSV nokta yazıcısı oluşturacağız ve ardından bu dosya adını veri satırı için geçeceğiz. Yani buradaki verilerimiz, writer.writerow. Şimdi satırı bir liste olarak geçmemiz gerekiyor, böylece burada hangi değerleri istediğimize karar verebiliriz. Emlak danışmanımın neye ihtiyacı var? Belki bir yer adı ve bir ilçe. Böylece, buradaki yazara bir sınırlayıcı anahtar kelime argümanı ileterek sınırlayıcı sekmeleri tekrar yapabiliriz. Ancak varsayılan olarak virgül kullanılacaktır, ki ben zaten bunu tercih ederim. Öyleyse sadece bunu kullanalım. Tamam, şimdi buraya gidelim ve elimizde ne olduğunu görelim. Hmm, işte gidiyorsun. Tüm bu birinci sınıf gayrimenkullere bakın. Bilen. Kasaba adına kaç tane tarımsal bina sığdırabilirsiniz?
Deneme dosyaları ile uygulama yaparken öğrenin
Eğitmenin dersi öğretmek için kullandığı dosyaları indirin. İzleyerek, dinleyerek ve uygulama yaparak öğrenin.