pd.merge()和dataframe.merge()之间的区别

时间:2020-06-02 02:12:15

标签: python pandas merge

我想知道当您通过pd.mergedataframe.merge()合并时的区别是什么,如下例:

pd.merge(dataframe1, dataframe2)

dataframe1.merge(dataframe2)

1 个答案:

答案 0 :(得分:0)

我们拥有两个函数来处理几乎相同的任务pandas.merge()和DataFrame.merge()。

pandas.merge(left, right, how='inner', on=None, left_on=None, right_on=None, 
          left_index=False, right_index=False, 
          sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)

DataFrame.merge(right, how='inner', on=None, left_on=None, right_on=None, 
             left_index=False, right_index=False, 
             sort=False, suffixes='_x', '_y', copy=True, indicator=False, validate=None)

两者看起来很相似,所以使用一个比另一个有什么优势?

pd.merge()调用df.merge,因此df1.merge(df2)的结果几乎与pd.merge(df1,df2)相同。

但是,pd.merge()是包装样式函数,而df1.merge()是链接样式,这使得后面的链接从左到右更容易< / p>

例如

 df1.merge(df2).merge(df3) 
 #looks better and readable [analogus to %>% pipeline operator in R] than 
 pd.merge(pd.merge(df1, df2), df3).

让我们看一个可复制的示例

d1 = pd.read_html('https://worldpopulationreview.com/countries')
pop = d1[0]
print(pop.info(), '\n') #Data for 232 countries for 7 columns

pop.head(3)

d2 = pd.read_html('https://worldpopulationreview.com/country-rankings/median-age')
age = d2[0]
print(age.info(), '\n') #Data for 221 countries for 5 columns

age.head(3)

display('pd.merge(): ', pd.merge(pop, age), 'df.merge(): ', pop.merge(age))