python - pd.merge() 和 dataframe.merge() 之间的区别
问题描述
我想知道当您通过pd.merge
vs合并时有什么区别dataframe.merge()
,示例如下:
pd.merge(dataframe1, dataframe2)
和
dataframe1.merge(dataframe2)
解决方案
对于几乎相同的任务 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() 是链接样式,这使得后面更容易从左到右链接
例如,
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))
推荐阅读
- javascript - Google.script.run 功能在 firefox、safari 中失败
- dataframe - 2个数据框之间的匹配行
- r - 在 r 中提取不同值的最快方法
- angular - Angular - 如何将数据从一个组件传递到另一个
- python - 为什么ipynb文件在不同的电脑上打开的大小不同?
- c++ - 为什么这个 c++ 程序不能正常运行?
- ios - 当它们嵌入导航控制器时,标签栏无法识别视图控制器
- python - Impyla - 用户没有执行“SELECT”的权限
- r - VIF 无拦截:vifs 可能不明智
- python - Errno 13 权限被拒绝:'tmp\\csv.gz