IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> python数据处理----数据合并 -> 正文阅读

[大数据]python数据处理----数据合并

连接数据

加载多份数据连接

# 读取数据
df1 = pd.read_csv('../data/concat_1.csv')
df2 = pd.read_csv('../data/concat_2.csv')
df3 = pd.read_csv('../data/concat_3.csv')
print(df1)
print(df2)
print(df3)

在这里插入图片描述

# 连接数据  concat([数据1,数据2])方法
row_concat = pd.concat([df1,df2,df3])

在这里插入图片描述

DataFrame和Series连接:

Series是列数据,concat方法默认是添加行,由于Series数据没有行索引,所以添加了一个新列,缺失的数据用NaN填充

new_series = pd.Series(['n1','n2','n3','n4'])
row_concat = pd.concat([df1,new_series])
print(row_concat)

在这里插入图片描述

concat()方法可以连接多个,如果只需要追加一个对象可以使用append()方法:

df1.append(df2)

在这里插入图片描述

DataFrame添加一行数据:

ignore_index = True参数,忽略后面DataFrame的索引

data_dict = {'A':'n1','B':'n2','C':'n3','D':'n4'}
df1.append(data_dict,ignore_index=True)

在这里插入图片描述

DataFrame拼接一列数据

添加一列数据只需要DataFrame['列名'] = ['值1','值2']或者DataFrame['列名'] = Series对象

# concat()方法控制参数axis添加列
col_concat = pd.concat([df1,df2,df3],axis=1)
print(col_concat)

在这里插入图片描述
重置列索引:

col_concat = pd.concat([df1,df2,df3],axis='columns',ignore_index=True)
print(col_concat)

在这里插入图片描述

  1. 连接不同索引的数据集

用concat直接连接不同索引位置的值为NaN

df1.columns = ['A','B','C','D']
df2.columns = ['E','F','G','H']
df3.columns = ['A','C','F','H']
row_concat = pd.concat([df1,df2,df3])
print(row_concat)

在这里插入图片描述

添加join参数为inner,默认为outer,连接时只有索引相同的会显示:
在这里插入图片描述


合并多个数据集

读取MySQL数据库表:

from sqlalchemy import create_engine
# sqlalchemy创建mysql数据库连接
engine = create_engine('mysql+pymysql://root:mysql@localhost:3306/teachingdb_rcq')
# read_sql_table('表名',数据库连接引擎) 方法读取数据库
t_course = pd.read_sql_table('t_course',engine)
t_sinfo = pd.read_sql_table('t_sinfo',engine)
t_student = pd.read_sql_table('t_student',engine)
t_student_course = pd.read_sql_table('t_student_course',engine)
t_teacher = pd.read_sql_table('t_teacher',engine)

在这里插入图片描述
读取sqlite文件:

from sqlalchemy import create_engine
import os
os.chdir('../')
engine = create_engine('sqlite:///data/chinook.db')
#连接数据库
tracks = pd.read_sql_table('tracks', engine)
tracks.head()

一对一合并:

tracks_subset数据表:

在这里插入图片描述

genres数据表:
在这里插入图片描述

merge()方法合并:

参数1为merge合并的数据表
on参数: 以xx字段来进行合并,通常为关联主键
how参数:

  • left只保留左侧表中的所有key
  • right只保留右侧表中的所有key
  • inner只保留两个表中共有的key
  • outer保留左右两侧表中所有的key`
# 选出GenreId不相同的数据,确定一对一关系
tracks_subset = tracks.loc[[0,62,76,98,110,193,204,281,322,359],]
genres.merge(tracks_subset[['TrackId','GenreId','Milliseconds']],on='GenreId',how='left')

多对一合并

这次合并的是没有进行裁剪的tracks表,多对一关系

genres.merge(tracks[['TrackId','GenreId','Milliseconds']],on='GenreId',how='left')

多对一关系合并,多的那一张表会出现重复值
在这里插入图片描述

join合并

数据表:

在这里插入图片描述
左侧表.join()方法合并,参数1为连接的右侧表,lsuffix为左侧表指定的别名,rsuffix为右侧,how参数决定保留哪些key详细看上面merge()方法

# 读取数据
stocks_2016 = pd.read_csv('data/stocks_2016.csv')
stocks_2017 = pd.read_csv('data/stocks_2017.csv')
stocks_2018 = pd.read_csv('data/stocks_2018.csv')
# 合并
stocks_2016.join(stocks_2017, lsuffix='_2016', rsuffix='_2017', how='outer')

在这里插入图片描述

concat、join和merge的区别

方法特点
concat1. pandas函数
2. 可以垂直和水平的连接两个或多个pandas对象
3. 只用索引对齐
4. 默认是外连接(也可以内连接
join1. DataFrame方法
2. 只能水平连接两个或多个pandas对象
3. 对齐是依据被调用的DataFrame的列索引或行索引和另一个对象的行索引(不能为列索引
4. 默认左连接(可以调整how参数为右、内、外连接
merge1. DataFrame方法
2. 只能水平连接两个DataFrame对象
3. 同join的
4. 同join的
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 11:47:11  更:2022-04-26 11:49:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 19:58:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码