pandas 笔记:合并操作
Posted UQI-LIUWJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)
1是列(a[0][...] 和 b[0][...]合并,a[1][...] 和 b[1][...]合并)
pd.concat([df1,df2,df3],axis=1)
1.3 key
识别数据源自于哪张表
依旧是1.2的数据
pd.concat([df1,df2,df3],axis=0,keys=['df1','df2','df3'])
pd.concat([df1,df2,df3],axis=1,keys=['df1','df2','df3'])
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})
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')
pd.concat([df1,df2],axis=0,join='outer')
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)
pd.concat([df1,df2],axis=0,ignore_index=True)
2 append
默认沿着列进行拼接
result = df1.append(s2, ignore_index=True)
以上是关于pandas 笔记:合并操作的主要内容,如果未能解决你的问题,请参考以下文章