pandas 笔记:合并操作

1 concat

将数据根据不同的轴进行简单的融合

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

1.1 主要参数说明

objs series,dataframe构成的序列lsit 
axis

需要合并链接的轴,

0是行(a[...][0] 和 b[...][0]合并,a[...][1] 和 b[...][1]合并)

1是列(a[0][...] 和 b[0][...]合并,a[1][...] 和 b[1][...]合并)

join

连接的方式 inner,或者outer

如果为'inner'得到的是两表的交集,如果是outer,得到的是两表的并集

key 识别数据源自于哪张表
ignore_index 设置为true之后,合并的两个表就会根据列字段对齐,然后合并。最后再重新整理一个新的index

1.2 axis

需要合并链接的轴,

lst1=[['a0','b0','c0','d0'],
     ['a1','b1','c1','d1'],
     ['a2','b2','c2','d2'],
     ['a3','b3','c3','d3']]
lst2=[['a4','b4','c4','d4'],
     ['a5','b5','c5','d5'],
     ['a6','b6','c6','d6'],
     ['a7','b7','c7','d7']]
lst3=[['a8','b8','c8','d8'],
     ['a9','b9','c9','d9'],
     ['a10','b10','c10','d10'],
     ['a11','b11','c11','d11']]
df1=pd.DataFrame(lst1)
df2=pd.DataFrame(lst2)
df3=pd.DataFrame(lst3)

0是行(a[...][0] 和 b[...][0]合并,a[...][1] 和 b[...][1]合并)【默认】

pd.concat([df1,df2,df3],axis=0)

 pandas 笔记:合并操作

1是列(a[0][...] 和 b[0][...]合并,a[1][...] 和 b[1][...]合并)

pd.concat([df1,df2,df3],axis=1)

pandas 笔记:合并操作

1.3 key

识别数据源自于哪张表

 依旧是1.2的数据

pd.concat([df1,df2,df3],axis=0,keys=['df1','df2','df3'])

pandas 笔记:合并操作 

pd.concat([df1,df2,df3],axis=1,keys=['df1','df2','df3'])

pandas 笔记:合并操作

 1.3.1 也可以传入字典来增加分组键 

lst1=[['a0','b0','c0','d0'],
     ['a1','b1','c1','d1'],
     ['a2','b2','c2','d2'],
     ['a3','b3','c3','d3']]
lst2=[['a4','b4','c4','d4'],
     ['a5','b5','c5','d5'],
     ['a6','b6','c6','d6'],
     ['a7','b7','c7','d7']]
df1=pd.DataFrame(lst1)
df2=pd.DataFrame(lst2)
pd.concat({'df1':df1,'df2':df2})

pandas 笔记:合并操作

 1.4 join

连接的方式 inner,或者outer

如果为'inner'得到的是两表的交集,如果是outer,得到的是两表的并集【默认outer】

lst1=[['a0','b0','c0','d0'],
     ['a1','b1','c1','d1'],
     ['a2','b2','c2','d2'],
     ['a3','b3','c3','d3']]
lst2=[['a4','b4','c4','d4'],
     ['a5','b5','c5','d5'],
     ['a6','b6','c6','d6'],
     ['a7','b7','c7','d7']]
df1=pd.DataFrame(lst1,columns=['A','B','C','D'])
df2=pd.DataFrame(lst2,columns=['A','B','E','F'])
pd.concat([df1,df2],axis=0,join='inner')

pandas 笔记:合并操作 

pd.concat([df1,df2],axis=0,join='outer')

pandas 笔记:合并操作 

1.5 ignore_index 

设置为true之后,合并的两个表就会根据列字段对齐,然后合并。最后再重新整理一个新的index

lst1=[['a0','b0','c0','d0'],
     ['a1','b1','c1','d1'],
     ['a2','b2','c2','d2'],
     ['a3','b3','c3','d3']]
lst2=[['a4','b4','c4','d4'],
     ['a5','b5','c5','d5'],
     ['a6','b6','c6','d6'],
     ['a7','b7','c7','d7']]
df1=pd.DataFrame(lst1)
df2=pd.DataFrame(lst2)
pd.concat([df1,df2],axis=0)

 pandas 笔记:合并操作

pd.concat([df1,df2],axis=0,ignore_index=True)

 pandas 笔记:合并操作

2 append

默认沿着列进行拼接

pandas 笔记:合并操作

 result = df1.append(s2, ignore_index=True)

pandas 笔记:合并操作

上一篇:独立开发者研发非官方 OneDrive for Linux


下一篇:B站14天数据分析笔记3次课Pandas