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

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *