• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

  • 共95篇

    python3.X - 数据分析 - Pandas

关闭

返回栏目

关闭

返回python3.X - 数据分析 - Pandas栏目

77 - 合并数据 - df.merge() - 多功能合并

作者:

贺及楼

成为作者

更新日期:2024-06-08 23:23:02

merge()
  1. import numpy as np
  2. import pandas as pd
  3. pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,
  4. left_index=False, right_index=False, sort=True,
  5. suffixes=('_x', '_y'), copy=True, indicator=False,
  6. validate=None)

merge方法的主要参数:

  1. left/right:左/右位置的dataframe
  2. how:数据合并的方式。left:基于左dataframe列的数据合并;right:基于右dataframe列的数据合并;outer:基于列的数据外合并(取并集);inner:基于列的数据内合并(取交集);默认为'inner'
  3. on:用来合并的列名,这个参数需要保证两个dataframe有相同的列名。多个索引用["A", "B"]
  4. left_on/right_on:左/右dataframe合并的列名,也可为索引,数组和列表。
  5. left_index/right_index:是否以index作为数据合并的列名,True表示是。
  6. sort:根据dataframe合并的keys排序,默认是。
  7. suffixes:若有相同列且该列没有作为合并的列,可通过suffixes设置该列的后缀名,一般为元组和列表类型。

例子

  1. df1 = pd.DataFrame(data=[{'name':'xiaoming','color':'blue',}, {'name':'leilei','color':'yellow',}])
  2. df2 = pd.DataFrame(data=[{'tools':'ruler','color':'blue',}, {'tools':'pen','color':'yellow',}, {'tools':'pencil','color':'yellow',}, {'tools':'eraser','color':'blue',}])
df1
name color
0 xiaoming blue
1 leilei yellow
df2
tools color
0 ruler blue
1 pen yellow
2 pencil yellow
3 eraser blue
  1. df3 = pd.merge(df2, df1, how="left", on="color")
  2. df3 = pd.merge(df2, df2, how="left", on=["类别", "水果"]) # 多索引
df3
tools color name
0 ruler blue xiaoming
1 pen yellow leilei
2 pencil yellow leilei
3 eraser blue xiaoming