当前位置:   article > 正文

Python数据分析补充:多表合并与连接_pd.merge()将多个表连接的方式how参数为()

pd.merge()将多个表连接的方式how参数为()

在平时的学习或工作中可能会涉及多张表的操作,例如:

  • 将表结构先沟通(即变量个数和变量类型均仙童)的多张表纵向合并到一张长表中。
  • 将多张表的变量水平扩展到一张宽表中。

如果对数据SQL语法比较熟悉,那表之间的合并和连接就非常简单了,对于多张表的合并,只需要使用UNION或NION ALL关键词,对于多张表之间的连接只需要使用INNER JOIN或LEFT JOIN即可。

需要注意的是
对于多表之间的纵向合并,必须确保夺标的列数和数据类型一致;
对于多表之间的水平扩展,则必须保证多表之间拥有共同的匹配变量。

对于Python来说,Pandas模块提供了对应的concat函数和merge函数来实现纵向合并和横向合并。

一、合并函数concat()

concat()函数的语法如下

pd.concat(objs,axis=0,join='outer',jokin_axes=None,ignore_index=False,keys=None)
  • 1

函数的参数说明如下:

  • objs:指定需要合并的对象,可以是序列、数据框或面板数据构成的列表。
  • axis:指定数据合并的轴,默认为0,表示合并多个数据的行(行数发生了变化),如果为1,则表示合并多个数据的列(列数发生了变化)。
  • join:指定合并的方式,默认为outer,表示合并所有数据,如果改为inner,则表示合并公共部分的数据。
  • join_axes:合并数据后,指定保留的数据轴。
  • ignore_index:bool类型的参数,表示是否忽略原数据集的索引,默认为False,如果设置为True,则表示忽略原索引并生成新索引。
  • keys:为合并后的数据添加新索引,用于区分各个数据部分。

对于合并函数concat()有两点需要强调:

  1. 如果纵向合并多个数据集,即使这些数据集都含有“姓名”变量,但变量名称不一致,如Name和name,通过合并后将会得到错误的结果。
  2. join_axes参数的使用,例如该参数等于[df.index],则表示保留与df行标签值一样的数据,但需要配合axis=1一起使用(即实现的是变量横向合并操作);如果等于[df.columns],则保留df中所有变量值一样的数据,但不需要添加axis=1的约束。

concat()函数的使用方法如下:

import pandas as pd

# 构造数据集df1和df2
df1= pd.DataFrame({
   'name':['lily','lucy','tom'],
                 'age':[21,25,22],
                 'gengder':['female','female','male']})

df2 = pd.DataFrame({
   'name':['david','慕容复']<
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号