Python数据分析与可视化教案3.7 数据的拼接和合并.docx
《Python数据分析与可视化教案3.7 数据的拼接和合并.docx》由会员分享,可在线阅读,更多相关《Python数据分析与可视化教案3.7 数据的拼接和合并.docx(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课 题3.7数据的拼接和合并课 型讲练授课班级大数据授课时数2教学目标1 .理解纵向拼接和横向合并的意义。2 .能够将多个数据进行纵向拼接。3 .能够将多个数据进行横向合并。4 .理解横向合并中内连接、外连接、左连接、右连接的作用。教学重点1 .能够将多个数据进行纵向拼接。2 .能够将多个数据进行横向合并。教学难点1.理解横向合并中内连接、外连接、左连接、右连接的作用。学情分析数据的连接在数据库SQL中已经学过,这一点有助于pandas的数据合 并的内容的学习。在数据导入时,往往会遇到数据的合成。比方某店铺想了解某月的销售额,就需 要将这个月第1天、第2天、,直到最后一天的日销售报表合成一个月
2、销售报表, 以了解商铺的运营情况。数据的合成是一种将来自不同源的数据组合成一个报表的有 效方法常用的方法。如果将两个或多个列名完全相同的DataFrame数据连接起来,从方向上看是数据 的纵向拼接。如果根据某一列将不同的两个DataFrame数据合并在一起,从方向上看 是数据的横向合并。纵向拼接和横向合并都有各自的特点,使用时需要注意数据合成 的方向。一、数据的纵向拼接数据的纵向拼接将两个或多个DataFrame同列拼接,在拼接时,要保证不同的 DataFrame列名必须全部相同,否那么就会出现多个空值。纵向拼接可以使用append 函数,叩pend的一般用法为:DataFrame.appen
3、d(other, ignore_index)其中,other表示添加的数据。ignore_index表示是否忽略原来索引并重新构建索引。append函数可以将数据向 下拓展,在数据拼接时,如果仅仅将默认的索引按照原始的行号连接起来,比方表1 默认索引是0、1、2、,表2默认索引是0、1、2、,连接后的索引就是0、1、 2、0、1、2、,这显然不方便数据的调用。ignore_index=True表示忽略原来索 引重新构建索引,即表2的索引会在表1的索引的基础自动向下编号,使得两个表的 索引变为一个完整的索引,便于数据选取。ignorejndex=False表示沿用原来索引, 而且这是默认设置。例
4、如代码如下:import numpy as npimport pandas as pdarrl = np.arange( 1,10).reshape(3,3)data_l = pd.DataFrame(arrl,columns=aVb,c,)arr2 = np.arange( 10,16).reshape(2,3)data_2 = pd.DataFrame(arr2,columns=a/b7e,|)print( 初始数据为:n ” ,data_ 1)print(初始拼接数据为据”,data_2)data_appendl = data_ 1 .append(data_2,ignore_index
5、=False)data_append2 = data_ 1 .append(data_2,ignore_index=True)print(沿用原来索引的结果为:ndata_叩pend 1)print(重新构建索引的结果为果”,data_append2)3-7C:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/3-7.py 初始数据为:a b c0 12 314 5 62 7 8 9初始拼接数据为:a b c0 10 11 121 13 14 15沿用原来索引的结果为:a b c0123145627890
6、1101112I11131415重新构建索引的结果为:a b c0123568911 1214 15Process finished with exit code 0图3-*数据的纵向拼接例如结果【结果分析】从结果中可以看到,在数据拼接时,如果参数ignore_index等于 False, data_2的索引还是原来的0和1,如果参数ignore-ndex等于True, data_2 的索引就在data索引的基础上自动变为新索引3和4。二、数据的横向合并merge函数可以将两个表格(DataFrame)进行横向合并,通过merge函数可以将 两个Dataframe根据一些共有的列(合并字段或主
7、键)合并起来,比方编号“ID”。 横向合并时可以选择不同的合并方式,可以选择inner(默认)、outer left right这几 种模式,分别对应是内连接、外连接,左连接,右连接。merge函数的一般用法为:pandas.merge(left_Dataframe,right_Dataframe,how,on,sort)其中,各个参数的作用如下:left_Dataframe表示参与合并的左侧DataFrameoright_Dataframe表示参与合并的右侧DataFrameohow 表示合并方式,取值包括inner、outer、left、Tight,默认为inner。inner 表示内连接
8、,即两个表将根据合并字段(主键)的重复取值进行合并,类似于交集。 6ute,表示外连接,即两个表将根据合并字段(主键)的所有取值进行合并,类似于 并集。卜任表示左连接,即两个表将根据左表合并字段(主键)的取值进行合并。Tight, 表示右连接,即两个表将根据右表合并字段(主键)的取值进行合并。如果在数据合 并时,除了用于合并的主键以外,还出现了其他重复的列,最后的结果中,会以“列 名_x”和“列名_y”的方式出现。on表示用于连接的列名,未指定那么使用两列的交集作为连接键。sort表示合并以后数据排序,True表示升序,False表示降序。例如代码如下:arrl = np.arange( 1,
9、10).reshape(3,3)data_left = pd.DataFrame(arrl,columns=|a,/bVc,) datajeft,key, = ,001,002,;003,arr2 = np.arange( 10,19).reshape(3,3)data_right = pd.DataFrame(arr2,columns= /dVe* ) data.rightfkey=001700270041 print(初始左表数据为:n”,dataeft) print(初始右表数据为:n ” ,data_right)data_merge 1 = pd.merge(data_left,dat
10、a_right,how=inner,on=key,) print(按内连接方式的合并结果为:n ” ,data_merge 1)data_merge2 = pd.merge(data_left,data_right,how=,outer,on=key) print(按外连接方式的合并结果为:n”,data_merge2) 输出结果如图3-*所示。Run:3-7C:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/3-7.py 初始左表数据为:a b c keyFp0123001初始右表数据为:adekey
11、010111200111314150022161718004内连接的合并结果为:Process finished with exit code 0a_x b c keyaqde01 2 3 00110111214 5 6 002171415外连接的合并结果为:ax b ckeya_/de0 1.0 2.0 3.030110.G11.0 12.01 4.0 5.0 6.030213.(14.0 15.02 7.0 8.0 9.0303NahNaN NaN3 NaN NaN NaN 004皿17.0 18.0图3-*内连接和外连接例如结果【结果分析】从结果可以看到,采用内连接的连接方式时,根据两表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python数据分析与可视化 教案 3.7 数据的拼接和合并 Python 数据 分析 可视化 拼接 和合
限制150内