[1147]pandas中merge()函数的用法详解
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