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

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir