Pandalar: farklı uzunluklara sahip bir dikteden dataframe oluşturun


Girişleri farklı uzunluklara sahip bir sözlükten pandas DataFrame oluşturmak için aşağıdaki temel sözdizimini kullanabilirsiniz:

 import pandas as pd

df = pd. DataFrame (dict([(key, pd. Series (value)) for key, value in some_dict. items ()]))

Bu sözdizimi, sözlük dizilerinin bir listesini panda dizilerinin bir listesine dönüştürür.

Bu, bir pandas DataFrame oluşturmamıza ve ortaya çıkan DataFrame’deki her sütunun aynı uzunlukta olmasını sağlamak için NaN değerlerini doldurmamıza olanak tanır.

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: Farklı uzunluklara sahip bir dikteden Pandas DataFrame oluşturun

Farklı uzunluktaki girişleri içeren aşağıdaki sözlüğümüz olduğunu varsayalım:

 #create dictionary whose entries have different lengths
some_dict = dict(A=[2, 5, 5, 7, 8], B=[9, 3], C=[4, 4, 2])

#view dictionary
print (some_dict)

{'A': [2, 5, 5, 7, 8], 'B': [9, 3], 'C': [4, 4, 2]}

Bu sözlüğü bir pandas DataFrame’e dönüştürmek için from_dict() işlevini kullanmaya çalışırsak bir hata alırız:

 import pandas as pd

#attempt to create pandas DataFrame from dictionary
df = pd. DataFrame . from_dict (some_dict)

ValueError : All arrays must be of the same length

Sözlükteki tüm dizilerin aynı uzunlukta olması gerektiğini söyleyen bir hata alıyoruz.

Bu hataya geçici bir çözüm bulmak için, Dictionary’yi DataFrame’e dönüştürmek üzere aşağıdaki sözdizimini kullanabiliriz:

 import pandas as pd

#create pandas DataFrame from dictionary
df = pd. DataFrame (dict([(key, pd. Series (value)) for key, value in some_dict. items ()]))

#view DataFrame
print (df)

   ABC
0 2 9.0 4.0
1 5 3.0 4.0
2 5 NaN 2.0
3 7 NaN NaN
4 8 NaN NaN

Başarılı bir panda DataFrame oluşturabildiğimizi ve her sütunun aynı uzunlukta olmasını sağlamak için NaN değerlerinin doldurulduğunu unutmayın.

Bu NaN değerlerini başka değerlerle (sıfır gibi) değiştirmek isterseniz, change() fonksiyonunu şu şekilde kullanabilirsiniz:

 #replace all NaNs with zeros
df. replace (np. nan , 0, inplace= True )

#view updated DataFrame
print (df)

   ABC
0 2 9.0 4.0
1 5 3.0 4.0
2 5 0.0 2.0
3 7 0.0 0.0
4 8 0.0 0.0

Her NaN değerinin sıfırla değiştirildiğini unutmayın.

NaN değerlerini istediğiniz değerle değiştirmek için change() işlevini kullanmaktan çekinmeyin.

Ek kaynaklar

Aşağıdaki eğitimlerde pandalarda diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:

Pandalar: DataFrame’i sözlüğe dönüştürme
Pandalar: Bir sözlükle sütunlar nasıl yeniden adlandırılır?
Pandalar: Bir sözlük kullanarak NaN değerleri nasıl doldurulur

Yorum ekle

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