文章目录
- Merge方法
- 1.1 内连接(交集)
- 1.2 外连接(并集)
- 1.3 左连接
- 1.4 右连接
- 1.5 基于多列的连接算法
- 1.6 基于index的连接方法
- 2. join方法
- 3. concat方法
- 3.1 series类型的拼接方法
- 3.2 dataframe类型的拼接方法
- merge方法主要是基于两个dataframe的共同列进行合并
- join方法主要是基于两个dataframe的索引进行合并
- concat方法是对series或dataframe进行行拼接或列拼接
Merge方法
将两个dataframe连接起来
参数 | 含义 |
---|---|
left/right | 左/右位置的dataframe。 |
how | 数据合并的方式——内连接,外连接,左连接,右连接 |
left | 基于左dataframe列的数据合并; |
right | 基于右dataframe列的数据合并; |
outer | 基于列的数据外合并(取并集); |
inner | 基于列的数据内合并(取交集);默认为’inner’。 |
on | 用来合并的列名,这个参数需要保证两个dataframe有相同的列名。 |
left_on/right_on | 左/右dataframe合并的列名,也可为索引,数组和列表。 |
left_index/right_index | 是否以index作为数据合并的列名,True表示是。 |
sort | 根据dataframe合并的keys排序,默认True。 |
suffixes | 若有相同列且该列没有作为合并的列,可通过suffixes设置该列的后缀名,一般为元组和列表类型。 |
1.1 内连接(交集)
# 单列的内连接
# 定义df1
df1 = pd.DataFrame({'alpha':['A','B','B','C','D','E'],'feature1':[1,1,2,3,3,1],
'feature2':['low','medium','medium','high','low','high']})
# 定义df2
df2 = pd.DataFrame({'alpha':['A','A','B','F'],'pazham':['apple','orange','pine','pear'],
'kilo':['high','low','high','medium'],'price':np.array([5,6,5,7])})
df3 = pd.merge(df1,df2,how='inner',on='alpha')
df3
1.2 外连接(并集)
df4 = pd.merge(df1,df2,how='outer',on='alpha')
df4
1.3 左连接
df5 = pd.merge(df1,df2,how='left',on='alpha')
df5
1.4 右连接
df6 = pd.merge(df1,df2,how='right',on='alpha')
df6
1.5 基于多列的连接算法
多列的内连接:
df1 = pd.DataFrame({'alpha':['A','B','B','C','D','E'],'beta':['a','a','b','c','c','e'],
'feature1':[1,1,2,3,3,1],'feature2':['low','medium','medium','high','low','high']})df2 = pd.DataFrame({'alpha':['A','A','B','F'],'beta':['d','d','b','f'],'pazham':['apple','orange','pine','pear'],
'kilo':['high','low','high','medium'],'price':np.array([5,6,5,7])})
df7 = pd.merge(df1,df2,on=['alpha','beta'],how='inner')
df7
.
多列的右连接:
df8 = pd.merge(df1,df2,on=['alpha','beta'],how='right')
df8
1.6 基于index的连接方法
2. join方法
join和merge的连接方法类似
3. concat方法
concat方法是拼接函数,有行拼接和列拼接,默认是行拼接,拼接方法默认是外拼接(并集),拼接的对象是pandas数据类型。
3.1 series类型的拼接方法
行拼接:
行拼接若有相同的索引,为了区分索引,我们在最外层定义了索引的分组情况。
列拼接:
默认以并集的方式拼接
以交集的方式拼接:
设置列拼接的列名:
对指定的索引拼接:
3.2 dataframe类型的拼接方法
行拼接:
df1 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3', 'K4', 'K5'], 'A': ['A0', 'A1', 'A2', 'A3', 'A4','A5']})
df2 = pd.DataFrame({'key': ['K0', 'K1', 'K2'],'B': ['B0', 'B1', 'B2']})
# 行拼接
pd.concat([df1,df2])
列拼接:
pd.concat([df1,df2],axis=1)