merge()函数类似于SQL里的表连接
# 导入包
import pandas as pd
import numpy as np
# 在同一个cell里同时输出多条语句
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
# 建立数据集
df1=pd.DataFrame({'key':list('ancbd'),'data':range(5)})
df1
df2=pd.DataFrame({'key':list('abc'),'data':range(3)})
df2
image.png
相关的参数,我都在下面备注说明了,具体使用时,按需设置即可
pd.merge(df1,df2
,how='inner' #默认是inner,还有left,right,outer
,on='key' #当左右数据源关联的key名字相同时,可以用on,也可以传入一个list,进行多个key连接
# ,left_on='key',right_on='key' #当左右数据源关联的key名字不同时,用left_on和right_on分别指定
# ,left_index=True,right_index=True #如果想用索引作为关联的key,可以通过left_index和right_index来设置
# ,suffixes=['_df1','_df2'] #当有相同列时,默认自动在后面加上'_x'和'_y'来区分,也可以通过suffixes自定义
)
# 结果
key data_x data_y
0 a 0 0
1 c 2 2
2 b 3 1
concat()除了实现merge的功能以外,还可以纵向连接
pd.concat([df1,df2],keys=['df1','df2']) # 添加keys参数,可以更好的区分数据来源
image.png
网友评论