这个函数横向合并时,将表的所有数据通过索引相同合并,而merge函数可以选择键值合并
参数功能:
aixs: 设置合并方式,0为纵向;1为横向
jion: 设置是交集还是并集,’‘inner’‘是交集;’‘outer’'是并集
import pandas as pd
import numpy as np
df1=pd.DataFrame({
'姓名':['小红','小风','小黑'],\
'年龄':['18','15','17'],\
'性别':['女','男','男']})
df2=pd.DataFrame({
'姓名':['大红','大风','大黑','大岚'],\
'年龄':['28','25','27','25'],\
'性别':['女','男','男','女']})
df3=pd.DataFrame({
'姓名':['张三','小李','小明','大明'],\
'年龄':['20','19','22','23'],\
'性别':['女','男','男','女']})
print('下面的是=横向==交集==产生的结果************')
merge=pd.concat([df1,df2],axis=1,join='inner')
print(merge)
print('\n下面的是=横向==并集==产生的结果**************')
merge1=pd.concat([df1,df2],axis=1,join='outer')
print(merge1)
print('\n下面的是=纵向====无索引产生的结果**************')
merge2=pd.concat([df1,df2],axis=0,ignore_index=True)
print(merge2)
print('\n下面的是=纵向====有索引产生的结果**************')
merge3=pd.concat([df1,df2],axis=0,ignore_index=False)
print(merge3)
print('\n下面的是=纵向====drop消去索引产生的结果并inplace作用到原数***********')
merge3.reset_index(drop=True,inplace=True)
print(merge3)
'''
下面的是=横向==交集==产生的结果************
姓名 年龄 性别 姓名 年龄 性别
0 小红 18 女 大红 28 女
1 小风 15 男 大风 25 男
2 小黑 17 男 大黑 27 男
下面的是=横向==并集==产生的结果**************
姓名 年龄 性别 姓名 年龄 性别
0 小红 18 女 大红 28 女
1 小风 15 男 大风 25 男
2 小黑 17 男 大黑 27 男
3 NaN NaN NaN 大岚 25 女
下面的是=纵向====无索引产生的结果**************
姓名 年龄 性别
0 小红 18 女
1 小风 15 男
2 小黑 17 男
3 大红 28 女
4 大风 25 男
5 大黑 27 男
6 大岚 25 女
下面的是=纵向====有索引产生的结果**************
姓名 年龄 性别
0 小红 18 女
1 小风 15 男
2 小黑 17 男
0 大红 28 女
1 大风 25 男
2 大黑 27 男
3 大岚 25 女
下面的是=纵向====drop消去索引产生的结果并inplace作用到原数***********
姓名 年龄 性别
0 小红 18 女
1 小风 15 男
2 小黑 17 男
3 大红 28 女
4 大风 25 男
5 大黑 27 男
6 大岚 25 女
将数据表中的某一列作为键值,当键值相同时放在同一行,相当于将该行键值合并
pd.merge(left=, right= ,how= " “,left_on =” “, right_on=” ",)
参数:
**left:**放到左边的数据表变量;right:放在右边数据表变量
**how:**合并方式,left:左表全显示,right右表全显示;outer:两个都显示;inner:只显示相等的
**left_on:**左边要关联的属性;**right_on:**右边要关联的属性,可以是列表表示多个相等的元素
import pandas as pd
import numpy as np
df1=pd.DataFrame({
'姓名':['小红','小风','小黑'],\
'年龄':['18','15','17'],\
'性别':['女','男','男']})
df2=pd.DataFrame({
'姓名':['大红','小风','大黑','小黑'],\
'age':['28','25','27','25'],\
'gender':['女','男','男','女']})
print('\n按照==左边==列表显示-----')
merg=pd.merge(left=df1,right=df2,how="left",\
left_on="姓名",right_on="姓名",)
print(merg)
print('\n按照==右边===列表显示-----')
merg1=pd.merge(left=df1,right=df2,how="right",\
left_on="姓名",right_on="姓名",)
print(merg1)
print('\n按照===交===显示-----')
merg2=pd.merge(left=df1,right=df2,how="inner",\
left_on="姓名",right_on="姓名",)
print(merg2)
print('\n按照===并===显示-----')
merg3=pd.merge(left=df1,right=df2,how="outer",\
left_on="姓名",right_on="姓名",)
print(merg3)
'''
按照==左边==列表显示-----
姓名 年龄 性别 age gender
0 小红 18 女 NaN NaN
1 小风 15 男 25 男
2 小黑 17 男 25 女
按照==右边===列表显示-----
姓名 年龄 性别 age gender
0 小风 15 男 25 男
1 小黑 17 男 25 女
2 大红 NaN NaN 28 女
3 大黑 NaN NaN 27 男
按照===交===显示-----
姓名 年龄 性别 age gender
0 小风 15 男 25 男
1 小黑 17 男 25 女
按照===并===显示-----
姓名 年龄 性别 age gender
0 小红 18 女 NaN NaN
1 小风 15 男 25 男
2 小黑 17 男 25 女
3 大红 NaN NaN 28 女
4 大黑 NaN NaN 27 男
'''