merge()
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的拼接方式
-
how = ‘outer’:外置,相当于两个DateFrame求并集 -
how = ‘right’: 右置,合并后,按照最右边不为空的样本显示 -
how = ‘left’:左置,合并后,按照最左边不为空的样本显示 -
how = ‘inner’:只显示匹配到的字段的样本
# 外置,相当于两个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
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
原文地址:https://blog.csdn.net/weixin_44177568/article/details/102510021