[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
