Misalkan ada dua kerangka data yang berbagi indeks yang sama tetapi memiliki kolom yang berbeda. Apakah lebih pintar menggabungkan dua kerangka data di sini atau menggabungkan?

import pandas as pd
from pandas import DataFrame

df1 = DataFrame(index = ['hey', 'yo'], columns = ['gee', 'thanks'], data = [[1,'foo'],[6,'rhy']]) 
df2 = DataFrame(index = ['hey', 'yo'], columns = ['youre', 'welcome'], data = [[8,'fotb'],[3,'yuo']])

#using merging
df3_merge = df1.merge(df2,left_index = True, right_index = True)  

#result:      
#             gee  thanks  youre  welcome
# hey          1    foo      8    fotb
# yo           6    rhy      3     yuo

#using concatenate
df3_concat = pd.concat([df1,df2], axis = 1)  

#result:      
#             gee  thanks  youre  welcome
# hey          1    foo      8    fotb
# yo           6    rhy      3     yuo

Tautan ini menginspirasi pertanyaan ini. Biasanya saya selalu menggunakan concat, tetapi saya ingin tahu apa yang orang lain gunakan atau pikirkan.

0
CannedScientist 24 Maret 2020, 11:25

1 menjawab

Jawaban Terbaik

Saya pikir itu tergantung, apa kebutuhan.

Secara default, di DataFrame.merge< /a> adalah inner bergabung, tetapi dimungkinkan mengubahnya menjadi outer, right atau left.

df3_merge = df1.merge(df2,left_index = True, right_index = True)  

Menjadi default di concat adalah gabungan luar, tetapi mungkin mengubahnya menjadi inner hanya dengan parameter inner:

df3_concat = pd.concat([df1,df2], axis = 1)

Juga jika ingin bergabung dengan daftar DataFrames, lebih sederhana dan lebih cepat adalah metode concat.

Jika ingin dibiarkan bergabung, concat tidak dapat digunakan, karena tidak diimplementasikan.


Informasi lebih lanjut tentang concat.

Informasi selengkapnya tentang merge.

1
jezrael 24 Maret 2020, 08:37