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