python DataFrame的合并方法有哪些

发布时间:2022-07-13 10:53:27 作者:iii
来源:亿速云 阅读:751

这篇文章主要介绍“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的合并方法有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. python pandas dataframe 按列或者按行合并的方法
  2. 怎么在python中利用DataFrame合并excel单元格

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

python dataframe

上一篇:Go语言中数组,切片和映射怎么使用

下一篇:Java之JVM的知识点有哪些

相关阅读

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

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