网站开发国内外研究动态,企业建立一个网站步骤,wordpress画廊怎么用,wordpress金币插件数据集的合并与连接 merge()解析merge()的主要参数 merge()解析
merge()可根据一个或者多个键将不同的DataFrame连接在一起#xff0c;类似于SQL数据库中的合并操作。 数据连接的类型
一对一的连接#xff1a;
df1 pd.DataFrame({employee: [Bob, Jake, Lisa, Sue], grou… 数据集的合并与连接 merge()解析merge()的主要参数 merge()解析
merge()可根据一个或者多个键将不同的DataFrame连接在一起类似于SQL数据库中的合并操作。 数据连接的类型
一对一的连接
df1 pd.DataFrame({employee: [Bob, Jake, Lisa, Sue], group: [Accounting, Engineering, Engineering, HR]})
df2 pd.DataFrame({employee: [Lisa, Bob, Jake, Sue], hire_date: [2004, 2008, 2012, 2014]})
df3 pd.merge(df1,df2)
df3输出
df3
多对一的连接
df4 pd.DataFrame({group: [Accounting, Engineering, HR], supervisor: [Carly, Guido, Steve]})
pd.merge(df3,df4) 输出
多对多连接
df5 pd.DataFrame({group: [Accounting, Accounting, Engineering, Engineering, HR, HR], skills: [math, spreadsheets, coding, linux, spreadsheets, organization]})
pd.merge(df1,df5)输出
merge()的主要参数
1. on 可以是列名字符串或者一个包含多列名称的列表
pd.merge(df1, df2, onemployee)输出 这个参数只能在两个DataFrame有共同列名的时候才可以使用。 2. left_on与right_on参数
有时你也需要合并两个列名不同的数据集例如前面的员工信息表中有一个字段不是employee而是name。在这种情况下就可以用left_on和right_on参数来指定列名。
df3 pd.DataFrame({name: [Bob, Jake, Lisa, Sue], salary: [70000, 80000, 120000, 90000]})
dfx pd.merge(df1,df3,left_onemployee,right_onname)输出 drop()删除 如果出现重复列但是列名不同时可以使用drop方法将这列去掉
dfx.drop(name,axis1)输出 3. left_index与right_index参数 用于合并索引
df1a df1.set_index(employee)
df2a df2.set_index(employee)
pd.merge(df1a,df2a,left_indexTrue,right_indexTrue)输出 用join()方法也可以实现该功能
df1a.join(df2a)输出 如果想将索引与列混合使用那么可以通过结合left_index与 right_on或者结合left_on与right_index来实现。
pd.merge(df1a, df3, left_indexTrue, right_onname)输出 4. how参数
how参数默认情况下是inner也就是取交集。how参数支持的数据连接方式还有outer、left和right。outer表示外连接取并集。
df6 pd.DataFrame({name: [Peter, Paul, Mary], food: [fish, beans, bread]}, columns[name, food])
df7 pd.DataFrame({name: [Mary, Joseph], drink: [wine, beer]}, columns[name, drink])
pd.merge(df6, df7, howouter) 输出 左连接和右连接返回的结果分别只包含左列和右列
pd.merge(df6, df7, howleft)输出
5. suffixes参数
如果输出结果中有两个重复的列名因此pd.merge()函数会自动为它们增加后缀 _x 或 _y当然也可以通过suffixes参数自定义后缀名。
df8 pd.DataFrame({name: [Bob, Jake, Lisa, Sue], rank: [1, 2, 3, 4]})
df9 pd.DataFrame({name: [Bob, Jake, Lisa, Sue], rank: [3, 1, 4, 2]})
pd.merge(df8, df9, onname, suffixes[_L, _R])输出
suffixes参数同样适用于任何连接方式即使有三个及三个以上的重复列名时也同样适用。