pandas数据合并

文章目录

    • 数据合并
      • 轴向堆叠数据
      • 主键合并数据

数据合并

在合并数据的操作中,除了 concat() 函数,另一个常用的函数就是 merge() 了,这两个函数也经常被拿来比较,其实只要弄懂了函数中重要参数的作用理解了每个函数的用法,自然就知道在哪种情况下使用哪一个函数,需要对函数中的哪个参数进行怎样的设置了。

轴向堆叠数据

concat()函数可以沿着一条轴将多个对象进行堆叠,其使用方式类似数据库中的数据表合并。

concat(objs,axis=0,join=‘outer’,join_axes=None,ignore_index=False,keys=None,levels=None,names=None, …)

使用横向堆叠与外连接的方式进行合并

import numpy as np
import pandas as pd

df1 = pd.DataFrame({'A':['A0','A0','A1'],
                   'B':['B0','B0','B1']})
print(df1)
'''
	A	B
0	A0	B0
1	A0	B0
2	A1	B1
'''
df2 = pd.DataFrame({'C':['C0','C0','C1','C3'],
                   'D':['D0','D2','D2','D3']})
print(df2)
'''

C	D
0	C0	D0
1	C0	D2
2	C1	D2
3	C3	D3
'''
result = pd.concat([df1,df2],join='outer',axis=1)
print(result)
'''
A	B	C	D
0	A0	B0	C0	D0
1	A0	B0	C0	D2
2	A1	B1	C1	D2
3	NaN	NaN	C3	D3
'''

使用纵向堆叠与内连接的方式进行合并

df1 = pd.DataFrame({'A':['A0','A1','A2'],
                   'B':['B0','B1','B2'],
                   'C':['C0','C1','C2']})
print(df1)
'''
    A   B   C
0  A0  B0  C0
1  A1  B1  C1
2  A2  B2  C2
'''
df2 = pd.DataFrame({'B':['B3','B4','B5'],
                   'C':['C3','C4','C5'],
                   'D':['D3','D4','D5']})
print(df2)
'''
    B   C   D
0  B3  C3  D3
1  B4  C4  D4
2  B5  C5  D5
'''
print(pd.concat([df1,df2],join='inner',axis=0))
'''
	B	C
0	B0	C0
1	B1	C1
2	B2	C2
0	B3	C3
1	B4	C4
2	B5	C5
'''

主键合并数据

在函数的官方文档里就有写到pd.merge()的作用是用数据库样式的连接合并DataFrame或者已命名的Series。
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)

left = pd.DataFrame({'key':['K0','K1','K2'],
                    'A':['A0','A1','A2'],
                    'B':['B0','B1','B2']})
print(left)
'''
	key	A	B
0	K0	A0	B0
1	K1	A1	B1
2	K2	A2	B2
'''
right = pd.DataFrame({'key':['K0','K1','K2','K3'],
                    'C':['C0','C1','C2','C3'],
                    'D':['D0','D1','D2','D3']})
print(right)
'''
	key	C	D
0	K0	C0	D0
1	K1	C1	D1
2	K2	C2	D2
3	K3	C3	D3
'''
print(pd.merge(left,right))
'''
key	A	B	C	D
0	K0	A0	B0	C0	D0
1	K1	A1	B1	C1	D1
2	K2	A2	B2	C2	D2
'''

你可能感兴趣的:(数据分析,pandas,python,开发语言)