温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python DataFrame的合并方法有哪些

发布时间:2022-07-13 10:53:27 来源:亿速云 阅读:767 作者:iii 栏目:开发技术

这篇文章主要介绍“python DataFrame的合并方法有哪些”,在日常操作中,相信很多人在python DataFrame的合并方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python DataFrame的合并方法有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    python DataFrame的合并方法

    Python的Pandas针对DataFrame,Series提供了多个合并函数,通过参数的调整可以轻松实现DatafFrame的合并。

    首先,定义3个DataFrame df1,df2,df3,进行concat、merge、append函数的实验。

    df1=pd.DataFrame([[1,2,3],[2,3,4]],columns=['a','b','c'])
    df2=pd.DataFrame([[2,3,4],[3,4,5]],columns=['a','b','c'])
    df3=pd.DataFrame([[1,2,3],[2,3,4]],columns=['a','b','d'])
    df1
       a  b  c
    0  1  2  3
    1  2  3  4
    df2
       a  b  c
    0  2  3  4
    1  3  4  5
    df3
       a  b  d
    0  1  2  3
    1  2  3  4

    #concat函数

    pandas中concat函数的完整表达,包含多个参数,常用的有axis,join,ignore_index.

    concat函数的第一个参数为objs,一般为一个list列表,包含要合并两个或多个DataFrame,多个Series

    pandas.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
               keys=None, levels=None, names=None, verify_integrity=False,
               copy=True)

    1.axis表示合并方向,默认axis=0,两个DataFrame按照索引方向纵向合并,axis=1则会按照columns横向合并。

    pd.concat([df1,df2],axis=1)
       a  b  c  a  b  c
    0  1  2  3  2  3  4
    1  2  3  4  3  4  5

    2.join表示合并方式,默认join=‘outer’,另外的取值为’inner’,只合并相同的部分,axis=0时合并结果为相同列名的数据,axis=1时为具有相同索引的数据

    pd.concat([df2,df3],axis=0,join='inner')
       a  b
    0  2  3
    1  3  4
    0  1  2
    1  2  3
    pd.concat([df2,df3],axis=1,join='inner')
       a  b  c  a  b  d
    0  2  3  4  1  2  3
    1  3  4  5  2  3  4

    3.ignore_index表示索引的合并方式,默认为False,会保留原df的索引,如果设置ignore_index=True,合并后的df会重置索引。

    pd.concat([df1,df2],ignore_index=True)
       a  b  c
    0  1  2  3
    1  2  3  4
    2  2  3  4
    3  3  4  5

    #merge函数

    merge函数是pandas提供的一种数据库式的合并方法。

    on可以指定合并的列、索引,how则是与数据库join函数相似,取值为left,right,outer,inner.left,right分别对应left outer join, right outer join.

    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):

    merge函数可以通过pandas.merge(df1,df2)、df1.merge(df2)两种形式来实现两个DataFrame的合并,df1.merge(df2)是默认left=self的情况。

    df_merge =df1.merge(df3,on=['a','b'])
       a  b  c  d
    0  1  2  3  3
    1  2  3  4  4

    #append函数

    append函数是pandas针对DataFrame、Series等数据结构合并提供的函数。

    df1.append(self, other, ignore_index=False, verify_integrity=False)

    df1.append(df2)与pd.concat([df1,df2],ignore_index=False)具有相同的合并结果

    df1.append(df2)
       a  b  c
    0  1  2  3
    1  2  3  4
    0  2  3  4
    1  3  4  5

    把两个dataframe合并成一个

    1.merage

    result = pd.merge(对象1, 对象2, on='key')

    对象1 和 对象2分别为要合并的dataframe,key是在两个dataframe都存在的列(类似于数据库表中的主键)

    2.append

    result = df1.append(df2)
    result = df1.append([df2, df3])
    result = df1.append(df4, ignore_index=True)

    3.join

    result = left.join(right, on=['key1', 'key2'], how='inner')

    4.concat

    pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
         keys=None, levels=None, names=None, verify_integrity=False,
         copy=True)
    frames = [df1, df2, df3]
    result = pd.concat(frames)
    result = pd.concat(frames, keys=['x', 'y', 'z'])
    result = pd.concat([df1, df4], ignore_index=True)

    到此,关于“python DataFrame的合并方法有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI