Pandalar: csv'yi satır başına farklı sayıda sütunla içe aktarın
Satır başına farklı sayıda sütun olduğunda bir CSV dosyasını pandalara aktarmak için aşağıdaki temel sözdizimini kullanabilirsiniz:
df = pd. read_csv (' uneven_data.csv ', header= None , names=range( 4 ))
range() fonksiyonunun içindeki değer, satırdaki maksimum sütun sayısına sahip sütun sayısı olmalıdır.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: CSV’yi satır başına farklı sayıda sütunla Pandas’a aktarın
Diyelim ki düzensiz_data.csv adında aşağıdaki CSV dosyamız var:
Her satırın aynı sayıda sütuna sahip olmadığını unutmayın.
Bu CSV dosyasını bir pandas DataFrame’e aktarmak için read_csv() işlevini kullanmaya çalışırsak bir hata alırız:
import pandas as pd #attempt to import CSV file with differing number of columns per row df = pd. read_csv (' uneven_data.csv ', header= None ) ParserError: Error tokenizing data. C error: Expected 2 fields in line 2, saw 4
Bize pandaların 2 alan beklediğini söyleyen bir ParserError alıyoruz (çünkü bu ilk satırdaki sütun sayısıydı), ancak 4 gördü.
Bu hata bize belirli bir satırdaki maksimum sütun sayısının 4 olduğunu söyler.
Böylece CSV dosyasını içe aktarabilir ve name argümanına range(4) değerini sağlayabiliriz:
import pandas as pd #import CSV file with differing number of columns per row df = pd. read_csv (' uneven_data.csv ', header= None , names=range( 4 ))) #view DataFrame print (df) 0 1 2 3 0 to 22 NaN NaN 1 B 16 10.0 12.0 2 C 25 10.0 NaN 3 D 14 2.0 7.0 4 E 20 4.0 NaN
Pandalara 4 sütun beklemelerini açıkça söylediğimiz için CSV dosyasını herhangi bir hata olmadan pandas DataFrame’e başarılı bir şekilde aktarabildiğimizi unutmayın.
Pandalar varsayılan olarak her satırdaki tüm eksik değerleri NaN ile doldurur.
Eksik değerlerin sıfır olarak görünmesini istiyorsanız fillna() fonksiyonunu aşağıdaki gibi kullanabilirsiniz:
#fill NaN values with zeros df_new = df. fillna ( 0 ) #view new DataFrame print (df_new) 0 1 2 3 0 to 22 0.0 0.0 1 B 16 10.0 12.0 2 C 25 10.0 0.0 3 D 14 2.0 7.0 4 E 20 4.0 0.0
DataFrame’deki her NaN değeri artık sıfırla değiştirildi.
Not : Pandaların read_csv() işlevinin tam belgelerini burada bulabilirsiniz.
Ek kaynaklar
Aşağıdaki eğitimlerde Python’da diğer genel görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
Pandalar: CSV dosyasını okurken satırlar nasıl atlanır
Pandalar: Mevcut bir CSV dosyasına nasıl veri eklenir?
Pandalar: CSV dosyasını içe aktarırken türler nasıl belirtilir?
Pandalar: CSV dosyasını içe aktarırken sütun adlarını ayarlayın