Pandalarda birden çok dataframe nasıl birleştirilir (örnekle)
Pandalarda birden fazla DataFrame’i aynı anda birleştirmek için aşağıdaki sözdizimini kullanabilirsiniz:
import pandas as pd from functools import reduce #define list of DataFrames dfs = [df1, df2, df3] #merge all DataFrames into one final_df = reduce(lambda left,right: pd.merge (left,right,on=[' column_name '], how=' outer '), dfs)
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir:
Örnek: Pandas’ta birden fazla DataFrame’i birleştirme
Farklı takımlardan basketbol oyuncuları hakkında bilgi içeren aşağıdaki üç panda DataFrame’e sahip olduğumuzu varsayalım:
import pandas as pd #createDataFrames df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D'], ' points ': [18, 22, 19, 14]}) df2 = pd. DataFrame ({' team ': ['A', 'B', 'C'], ' assists ': [4, 9, 14]}) df3 = pd. DataFrame ({' team ': ['C', 'D', 'E', 'F'], ' rebounds ': [10, 17, 11, 10]}) #view DataFrames print (df1) team points 0 to 18 1 B 22 2 C 19 3 D 14 print (df2) team assists 0 to 4 1 B 9 2 C 14 print (df3) team rebounds 0 C 10 1 D 17 2 E 11 3 F 10
Üç DataFrame’i tek bir DataFrame’de birleştirmek için aşağıdaki sözdizimini kullanabiliriz:
from functools import reduce
#define list of DataFrames
dfs = [df1, df2, df3]
#merge all DataFrames into one
final_df = reduce(lambda left,right: pd.merge (left,right,on=[' team '],
how=' outer '), dfs)
#view merged DataFrame
print (final_df)
team points assists rebounds
0 A 18.0 4.0 NaN
1 B 22.0 9.0 NaN
2 C 19.0 14.0 10.0
3 D 14.0 NaN 17.0
4 E NaN NaN 11.0
5 F NaN NaN 10.0
Nihai sonuç, üç DataFrame’in tümünden gelen bilgileri içeren bir DataFrame’dir.
NaN değerlerinin son DataFrame’deki boş hücreleri doldurmak için kullanıldığını unutmayın.
Boş hücreleri doldurmak amacıyla NaN dışında bir değer kullanmak için fillna() işlevini kullanabilirsiniz:
from functools import reduce
#define list of DataFrames
dfs = [df1, df2, df3]
#merge all DataFrames into one
final_df = reduce(lambda left,right: pd.merge (left,right,on=[' team '],
how=' outer '), dfs). fillna (' none ')
#view merged DataFrame
print (final_df)
team points assists rebounds
0 A 18.0 4.0 none
1 B 22.0 9.0 none
2 C 19.0 14.0 10.0
3 D 14.0 none 17.0
4 E none none 11.0
5 F none none 10.0
Boş hücrelerin her biri artık NaN yerine ” hiçbiri ” ile dolduruldu.
Not : Pandalardaki birleştirme işlevinin tam belgelerini burada bulabilirsiniz.
Ek kaynaklar
Aşağıdaki eğitimlerde pandalarda diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:
Dizinde iki Pandas DataFrame nasıl birleştirilir
Pandas DataFrames’ı birden çok sütunda birleştirme
Birden fazla Pandas DataFrame’i nasıl istifleyebilirim?