Cara menggabungkan beberapa dataframe di pandas (dengan contoh)
Anda dapat menggunakan sintaks berikut untuk menggabungkan beberapa DataFrame sekaligus di panda:
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)
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya:
Contoh: Gabungkan beberapa DataFrame di Pandas
Misalkan kita memiliki tiga panda DataFrames berikut yang berisi informasi tentang pemain bola basket dari tim berbeda:
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
Kita dapat menggunakan sintaks berikut untuk menggabungkan ketiga DataFrame menjadi satu:
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
Hasil akhirnya adalah DataFrame yang berisi informasi dari ketiga DataFrame.
Perhatikan bahwa nilai NaN digunakan untuk mengisi sel kosong di DataFrame akhir.
Untuk menggunakan nilai selain NaN untuk mengisi sel kosong, Anda dapat menggunakan fungsi fillna() :
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
Masing-masing sel kosong sekarang diisi dengan ” none ” dan bukan NaN .
Catatan : Anda dapat menemukan dokumentasi lengkap fungsi penggabungan di pandas di sini .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di panda:
Cara menggabungkan dua Pandas DataFrames di index
Cara menggabungkan Pandas DataFrames di beberapa kolom
Cara menumpuk beberapa Pandas DataFrames