import pandas as pd
pd.merge(DateFrame1,DateFrame2,on = ' ',how = ' ')
merge是pandas中用来合并数据的函数,不像concat是按照某行或某列来合并,而是按照数据中具体的某一字段来连接数据。
具体参数的意思,举例说明,一看就懂!!
先列举两个DataFrame
import pandas as pd
df_1 = pd.DataFrame({'姓名': ["小明","小红","小刚"],
'年纪': [10,9,12],
'城市': ['上海','北京','深圳']})
df_1
姓名 年纪 城市
0 小明 10 上海
1 小红 9 北京
2 小刚 12 深圳
df_2 = pd.DataFrame({'零花钱': [50,200,600,400,80],
'城市': ['苏州','北京','上海','广州','重庆']})
df_2
零花钱 城市
0 50 苏州
1 200 北京
2 600 上海
3 400 广州
4 80 重庆
on表示按照那个特征来找相同的字段:
# 两个DataFrame都有“城市”,并且“城市”里面有相同的元素,可以按照这些相同的元素拼接
result = pd.merge(df_1,df_2, on = '城市')
result
姓名 年纪 城市 零花钱
0 小明 10 上海 600
1 小红 9 北京 200
没有on的话,就自动找相同的字段
# 没有on的话,就自动找相同的字段
result = pd.merge(df_1,df_2)
result
姓名 年纪 城市 零花钱
0 小明 10 上海 600
1 小红 9 北京 200
how是指两个DateFrame的拼接方式。
# 外置,相当于两个DateFrame求并集
result = pd.merge(df_1,df_2, on = '城市', how = 'outer')
result
姓名 年纪 城市 零花钱
0 小明 10.0 上海 600.0
1 小红 9.0 北京 200.0
2 小刚 12.0 深圳 NaN
3 NaN NaN 苏州 50.0
4 NaN NaN 广州 400.0
5 NaN NaN 重庆 80.0
# 右置,
result = pd.merge(df_1,df_2, on = '城市', how = 'right')
result
姓名 年纪 城市 零花钱
0 小明 10.0 上海 600
1 小红 9.0 北京 200
2 NaN NaN 苏州 50
3 NaN NaN 广州 400
4 NaN NaN 重庆 80
# 左置
result = pd.merge(df_1,df_2, on = '城市', how = 'left')
result
姓名 年纪 城市 零花钱
0 小明 10 上海 600.0
1 小红 9 北京 200.0
2 小刚 12 深圳 NaN
# how = 'inner',只显示具有相同字段的样本
result = pd.merge(df_1,df_2, on = '城市', how = 'inner')
result
姓名 年纪 城市 零花钱
0 小明 10 上海 600
1 小红 9 北京 200