资讯专栏INFORMATION COLUMN

数据科学 第 3 章: 7-8 合并、连接数据集

IntMain / 2362人阅读

摘要:第章合并连接数据集包含三个函数省略,在页。没有对默认合并两个表的所有列,如果有列,有列,则结果为列多对保留多条记录多对多会交叉每一条记录通过参数设定连接方式两个表都有两个字段,则通过连接两个表。

第3章 7-8:合并、连接数据集

包含三个函数:
numpy:concatenate 省略,在126页。
pandas:concat/ append(略过) /merge

主要是讲merge函数的参数:pd.merge(right, how="inner", on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=("_x", "_y"), copy=True, indicator=False, validate=None) pd.merge 官方文档

concat:

如果a,b是两个字段名称相同的dataframe,就像原来的一部、二部各有存放业绩的两个表,在sql中可以用join连接,而pandas中用concat连接(注意有中括号)

pd.concat([yibu,erbu]) #yibu,erbu是两个dataframe

如果两个表的字段名不完全相同,会自动填充没有的字段,如下:

如果只想保留都有的字段,则在参数中指定为inner

如果想保留df5的字段名(即不要df6中的D列,可以在join_axes中设定
pd.concat([df5,df6], join_axes = [df5.columns])

merge:数据合并

分为1对1,1对多,多对多。
(merge没有[ ])

-- 1对1:
pd.merge(df1,df2)   #默认合并两个表的所有列,如果df1有a,b列,df2有b,c列,则结果为a,b,c列
-- 多对1:保留多条记录

-- 多对多:会交叉每一条记录

通过参数 on 设定连接方式:
df1: employee, group
df2: employee, hire_data
两个表都有employee两个字段,则通过employee连接两个表。

pd.merge(df1,df2,on = "employee")

df3: name, salary
df1与 df3没有相同的字段,但是df3中的name和df1中的employee字段内容相同,都是姓名,所有可以通过left_on,right_on设定左右两个表的关联字段,实现连接。

pd.merge(df1,df3, left_on = "employee", right_on = "name")
# name和employee的字段内容相同,可删除name保留一列:
pd.merge(df1,df3, left_on = "employee", right_on = "name").drop("name",axis =1)
通过索引连接,这部分略讲:

假如df1,df2中的index均为employee列,则连接方法如下:

pd.merge(df1,df2, left_index = True, right_index=True)
# 也可以用join连接
df1.join(df2)

如果df1的empolyee为索引,df2没有设置索引,则连接的代码为: 134页
pd.merge(df1, df2, left_index =True, right_on="name")

merge:数据连接

-- 参数 how:连接方式
这里主要是用merge里面的参数how,how参数有4种方式:
inner:内连接,保留两个表相同的行
outer:外连接,保留两个表所有的行
left:左连接,以左表为准,保留左表所有的行,右表匹配左表的结果
right:右连接,以右表为准,*

pd.merge(df6,df7, how = "inner")

-- 参数 suffixes:自定义后缀名
如果两个表的字段名相同,但对于的值不同,想保留两个表不同的值,可以设定参数suffixes

pd.merge(df8,df9, on = "name", suffixes = ["_L","_R"])

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44975.html

相关文章

  • 数据科学 3 4:连接mysql、改类型、索引应用

    今天开始学习《数据科学手册》,主要学习3-5章,其他的选修。 -- 先连接数据库加载数据: 用sqlalchemy 的create_engine连接: 注意:代码里mysql+pymysql: 这部分不能加空格,否则会报错 import pymysql import pandas as pd from sqlalchemy import create_engine sql = select...

    yuxue 评论0 收藏0
  • 数据科学系统学习】Python # 数据分析基本操作[四] 数据规整化和数据聚合与分组运算

    摘要:数据规整化清理转换合并重塑数据聚合与分组运算数据规整化清理转换合并重塑合并数据集可根据一个或多个键将不同中的行链接起来。函数根据样本分位数对数据进行面元划分。字典或,给出待分组轴上的值与分组名之间的对应关系。 本篇内容为整理《利用Python进行数据分析》,博主使用代码为 Python3,部分内容和书本有出入。 在前几篇中我们介绍了 NumPy、pandas、matplotlib 三个...

    The question 评论0 收藏0
  • 数据科学 5 主成分分析(降维)、相关性

    摘要:主成分分析就是降维,通过线性组合,把多个原始变量合并成若干个主成分,这样每个主成分都变成原始变量的线性组合。相关系数系数为为为。从结果看,这个数据可能不太适合用来分析,因为降到维后的代笔性不足。 这两天用学了主成分分析,用的是PCA。主成分分析就是降维,通过线性组合,把多个原始变量合并成若干个主成分,这样每个主成分都变成原始变量的线性组合。所以你想看具体哪个特征对结果的影响大,通过PC...

    ixlei 评论0 收藏0
  • ApacheCN 人工智能知识树 v1.0

    摘要:贡献者飞龙版本最近总是有人问我,把这些资料看完一遍要用多长时间,如果你一本书一本书看的话,的确要用很长时间。为了方便大家,我就把每本书的章节拆开,再按照知识点合并,手动整理了这个知识树。 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=200); 贡献者:飞龙版...

    刘厚水 评论0 收藏0
  • 数据科学 3 10 数据透视表

    摘要:官方文档连接像其他函数一样,官方文档中的参数有很多,具体如下写在前面,如果要对透视表中的字段进行计数,有时候用会报错,可以用实例运用简单版透视表上面以部门为索引,下面有二级索引,部门小组。 本节学习数据透视表 引用激励数据,连接数据库jili表,jili这几个太难打了,下文用df代表激励数据(代码省略)之前在excel中用烂了的透视表,终于用python来实现了,其实主要是讲pivot...

    lily_wang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<