范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Python数据分析,办公自动化,数据表如何做拼接与连接?

  日常数据分析中,需要将多个表进行合并,包括表的纵向拼接以及表的横向连接,将多个小表组合成为一张大表,使用的方法有Excel中的 Vlookup 函数法,SQL中 UNION 和 JOIN 的方法,以及 Pandas 模块中的函数。
  使用VLOOKUP函数,指定条件在指定区域直方向查找数据。
  VLOOKUP函数的公式如下: VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
  匹配张三的语文、数学、英语成绩使用VLOOKUP函数演示。
  VLOOKUP函数动态演示
  在SQL中,对于多张表的纵向拼接,使用 UNION 或 UNION ALL 关键词,对于多张表横向连接,使用 INNER JOIN 或者 LEFT JOIN 即可。
  在Python,Pandas模块中 append 函数和 concat 函数可以对表格做 纵向合并 , merge 函数可以对表格 横向连接 。其中,append函数只能在行方向进行拼接,concat函数可以在行方向或列方向进行内联或外联拼接操作,默认行拼接,取并集,merge函数可以在行方向或列方向进行拼接,默认列拼接,取交集。
  本文详细介绍Pandas模块中append函数、concat函数和merge函数,使用案例数据进行代码演示,下面一起来学习。
  本文来源于公众号:大话数据分析。一、表格纵向拼接
  1、append函数
  append函数的语法如下: df.append(other, ignore_index=False, verify_integrity=False, sort=None)
  函数的参数说明如下: other:DataFrame、series、dict、list等数据结构; ignore_index:默认值为False,若为True则不使用index标签; verify_integrity :默认值为False,若为True,当创建相同的index时会抛出ValueError的异常; sort:默认None,若为True时,进行排序。
  append函数的使用方法如下:
  构建一个DataFrame数据集,表示为df1和df2。 df1=pd.DataFrame([[11,12],[13,14]],columns=["二班","一班"],index=["优","良"]) df1
  df2=pd.DataFrame([[15,16]],columns=["二班","三班"],index=["差"]) df2
  使用append函数拼接,不排序。 df1.append(df2,sort=False)
  sort=True,进行排序。 df1.append(df2,sort=True)
  ignore_index=True去除索引。 df1.append(df1,ignore_index=True)#去除索引
  2、concat函数
  concat函数的语法如下: pd.concat(objs,axis=0,join="outer",jokin_axes=None,ignore_index=False,keys=None)
  函数的参数说明如下: objs:指定需要合并的对象; axis:拼接轴方向,默认为0,沿行拼接;若为1,沿列拼接; join:默认外联,拼接另一轴所有的label,缺失值用NaN填充; join_axes:指定需要拼接轴的labels,可在join既不内联又不外联的时候使用; ignore_index:对index进行重新排序,默认为False,若为True,则表示忽略原索引并生成新索引; keys:多重索引,便于区分来源表; sort: 按值排序。
  concat函数的使用方法如下: import pandas as pd import datetime
  构建一个DataFrame数据集,表示为df1和df2。 #构造数据集df1 df1 = pd.DataFrame({"用户ID":[1001,1002,1003,1004,1005,1006],                     "日期":pd.date_range(datetime.datetime(2021,3,26),periods=6),                     "城市":["北京", "上海", "广州", "上海", "杭州", "北京"],                     "年龄":[23,44,54,32,34,32],                     "性别":["F","M","M","F","F","F"],                     "成交量":[3200,1356,2133,6733,2980,3452]},                      columns =["用户ID","日期","城市","年龄","性别","成交量"]) df1
  #构造数据集df2 df2 = pd.DataFrame({"用户ID":[1007,1008,1009],                     "日期":pd.date_range(datetime.datetime(2021,3,1),periods=3),                     "城市":["北京", "上海", "广州"],                     "年龄":[33,34,34,],                     "成交量":[4200,3356,2633]},                     columns =["用户ID","日期","城市","年龄","成交量"]) df2
  使用concat函数拼接,keys为合并后的数据添加新索引,用于区分各个数据部分sort按照列名排序。 # 数据集的纵向合并 df = pd.concat([df1,df2],# 指定需要合并的对象                 keys=["df1","df2"],# 为合并后的数据添加新索引,用于区分各个数据部分                 sort=True #按照列名排序                 ) df
  level=0将第一列的索引列转换为变量。 # 将第一列的索引列转换为变量 df3 = df.reset_index(level=0,inplace=False) df3
  rename将第一列的索引列转换为变量后然后重命名。 # 变量重命名 df3.rename(columns={"level_0":"数据集"},inplace=True) df3
  拼接成新的数据集后,发现行索引还是原来的,不直观,这是使用两种方法进行修改,一种是使用index的方法。 # 重新调整行索引 df3.index = range(df3.shape[0]) df3
  另一种当ignore_index=True,对index进行重新排序。 # 重新调整行索引 df = pd.concat([df1,df2],sort=True,ignore_index=True) df
  二、横向连接
  1、merge函数
  merge函数的语法如下: pd.merge(left, 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)
  函数的参数说明如下: left_data、right_data:需要合并的两部分数据; on:连接键,当两个表的连接键名一样,可以直接用on,而不用left_on和right_on,可以是单键或多键; left_on、right_on:如果两个表键名不一样,则分别指出,可以是单键或多键; suffixes:如果两边键名相同,要做区分,可以使用此参数指定区分格式,如suffixes=("left_x","right_y"); how:指定连接方式,分为inner、left、right、outer;
  merge函数的使用方法如下: import pandas as pd import datetime
  构建一个DataFrame数据集,表示为df1和df2。 #构造数据集df df1 = pd.DataFrame({"用户ID":[1001,1002,1003,1004,1005,1006],                     "日期":pd.date_range(datetime.datetime(2021,3,26),periods=6),                     "城市":["北京", "上海", "广州", "上海", "杭州", "北京"],                     "年龄":[23,44,54,32,34,32],                     "性别":["F","M","M","F","F","F"],                     "成交量":[3200,1356,2133,6733,2980,3452]},                      columns =["用户ID","日期","城市","年龄","性别","成交量"]) df1
  #构造构造列名不同的df2 df2 = pd.DataFrame({"id":[1001,1002,1003,1004,1005,1006,1007,1008,1009,1010],                     "平台":["京东","淘宝","京东","天猫","唯品会","苏宁","天猫","淘宝","美团","拼多多"],                     "收入额":[100000,320000,240000,445000,340000,640000,300000,460000,540000,230000]},                     columns =["id","平台","收入额"]) df2
  首先构建了两个连接键列名不同的数据集,需要分别指定left_on和right_on进行连接,此处how="left"是左连接。 # 将df1和df2连接起来 merge1 = pd.merge(left=df1,right=df2,how="left",left_on="用户ID",right_on="id") merge1
  构造列名相同的df2,都有一个"用户ID"的列名。 #构造列名相同的df2 df2 = pd.DataFrame({"用户ID":[1001,1002,1003,1004,1005,1006,1007,1008,1009,1010],                     "平台":["京东","淘宝","京东","天猫","唯品会","苏宁","天猫","淘宝","美团","拼多多"],                     "收入额":[100000,320000,240000,445000,340000,640000,300000,460000,540000,230000],                     "日期":pd.date_range(datetime.datetime(2021,3,1),periods=10)},                     columns =["用户ID","平台","收入额","日期"]) df2
  因为都有一个"用户ID"的列名,所以此处左连接时,不用分别指定左右键名,只需要用on指定就好。 # 指定用户ID连接 merge2 = pd.merge(left=df1,right=df2,how="left",on="用户ID") merge2
  suffixes对于重复的列名修改,作区分。 # 重复列名处理 merge2 = pd.merge(left=df1,right=df2,how="left",on="用户ID",suffixes=["","1"]) merge2
  通常表格拼接完成后,数据预处理后就可以对数据做分析了,对于数据分析所需要的的字段分析。 df=merge2[["用户ID","日期","城市","成交量","收入额"]] df
  查看字段的属性。 df.info()
  做收入额的条形图。 df["收入额"].plot(kind="bar")

飞利浦怡亚通数智化供应链平台,助力品牌拓展更广阔市场向静飞利浦健康生活事业群电商总经理01。怡亚通助力飞利浦完成从线下到线上转型飞利浦初入中国市场,一直与当地零售商进行合作完成渠道覆盖,通过自身的品牌力量管理终端业务模式,然而,面对获国家高新技术企业认定,央视频融媒体发展有限公司再展硬实力互联网发展的核心依托于科学技术的创新研发与实际应用。近日,北京市2021年第一批国家高新技术企业名单公布,央视频融媒体发展有限公司(以下简称央视频公司)作为中央广播电视总台直属一级送给老婆的月影蜂窝摇摇椅520的时候我给老婆精心的准备了一个礼物,那就是月影家居的月影蜂窝摇摇椅。这款摇椅当时也是单位的一位女同事推荐给我的。月影灯饰说她买的这款摇摇椅不仅外观时尚,新颖,而且做工上的用材圈内人必看,消失已久的中轴重现江湖好看的城市千篇一律,申遗的北京中轴线万里挑一,正如中国著名建筑学家梁思成所说你看都是千篇一律,同时千变万化。而无限不循环的也有着变化万千的特点,在近千年的历史长河中,京城的发展脉络极致游戏体验,黑鲨4S系列独家支持战神遗迹原画画质10月13日黑鲨科技召开2021黑鲨4S系列新品发布会,全新黑鲨4S系列正式发布!发布会上黑鲨宣布,全新黑鲨4S系列率先支持完美世界游戏旗下大型RPG手游战神遗迹原画画质,同时还将因日本经济泡沫,所产生的Vintage时尚行业时尚是什么?该如何去定义?一千个人就有一千种说法,众口不一。但是在千万种时尚的定义中,又有一个共性喜爱时尚的人都想通过一些事物来表达自己。这些事物美好独特,令人倾心,经得起岁月磨砺Vintage时尚海报那些旧时光的美人儿Vintage是一个耐人寻味的词汇,一套Vintage服饰,一个Vintage包包,一件Vintage珠宝,都充满着时光的各种痕迹,每个细节都在娓娓诉说那时的动人故事。经典的设计都秀场新动向拼色时尚爆火潮流元素时尚秀场成为了潮人们的流行指南。在近日公布的2020春夏时装周上,拼色元素再一次爆火起来。鲜艳的暖色系与沉稳的冷色系即将在2020年激情邂逅,跳脱的活力独特的时尚感一扫冬季的阴霾。灿烂自由行,拍性感小姐姐和爱车e1时间总是在悄无声息的溜走,当我们想挽留它时,它又在我们的指尖溜走而我们所能做的,就要用相机记录下生活中的美好,让美好成片,让记忆出彩。说到自由行,这是我和女友最喜欢做的事,要不然当在不起眼的行业,山东烟台万华半年赚135亿,淄博富豪净利润翻2倍文丛树来源鲁商儒风2021年,很多企业的日子不好过,但也有不少企业日子大赚。人们似乎总喜欢把眼睛盯着风口,找热门行业,赚快钱,引起投资人的注意。近年来,从互联网电商光伏,到新能源汽重大发现科学家意外发现了能吞食金属的细菌科学家们发现了一种以金属为食并从中获取热量的细菌,他们怀疑这种细菌存在了100多年,但从未得到证实。现在,加州理工学院的微生物学家在对一种常见的化学元素锰进行不相关的实验后,意外地
空气消毒机的基本构成要素HEPA过滤器HEPA可以简单地定义为一种能够去除空气中0。3m的微粒物效率在99。97以上的干式过滤网。过滤器的过滤效率常见的细菌本身尺寸范围。光触媒又叫光催化,其基本原理是以纳米氧化钛为主的室内常见的空气污染物及治理方法通常认为不利于呼吸健康的物质可视为空气污染物,根据其存在的状态不同可将其分为三大类气态污染物固态污染物以及液态污染物。不同体质的人群对于这些物质的敏感度不同,如部分群体对花粉香水香在选购空气消毒机时,为什么要了解CADRCCM等参数?目前市面上大部分空气消毒机的功能不再仅仅只是紫外线消毒等离子消毒等,而是集多种消毒因子,包括紫外线等离子光触媒,以及HEPA高效过滤网活性炭过滤网等于一体的空气净化消毒设备。因此,空气净化器怎么选?空气净化器是否值得购买?目前国内市场上空气净化器的品牌超过500个,在这些品牌中怎么样去有效精准识别各个品牌背后的价值所在,该品牌下的产品或服务是否能够满足人们的需求,能否为人们创造相应的价值。不同的市场空气消毒机如何使用,每次怎样维护?空气消毒机通常是指对空气杀菌灭毒的一种消毒设备。常见的空气消毒机这主要有三大部分构成一是动力系统(电机提供动力)二是过滤系统(HEPA高效滤网活性炭滤网)三是消毒系统(紫外线光触媒几种有效清除室内甲醛的方法空气净化器篇伴随着生活水平的提高健康意识的加强,人们越来越关注空气水喝食物等必备物品的健康。对于水喝食物,人们总是可以通过视觉味觉来判断其好坏,但对于空气,仅凭视觉和味觉已不太能准确判定其好坏进新房装新风让空气流通更顺畅买房装修,是大部分人生活中重要的大事之一。众所周知,在装修的过程中,会有各种甲醛苯苯系化合物和TOVC透过装修渗入到室内的空间当中,此时室内空气就会充满这些因装修带来的污染物,再加解决室内霾污染,选择家用空气净化器的注意事项有哪些?一雾霾,据地面气象观测规范对霾天气定义大量极细微的干尘粒等均匀地浮游在空中,使水平能见度小于10千米的空气普遍有混浊现象,使远处光亮物微带黄红色,使黑暗物微带蓝色。雾霾形成原因雾霾想和华为硬碰硬,三星打官司输了一场又一场华为和三星都是响当当的手机品牌而在打官司上面两个手机品牌也一直在拉锯但令大家想不到的是华为三星竟然打了5年的官司结果均以三星败诉而告终这一次也不例外不仅如此三星还赔偿了100元在2不到10万起的奔腾B70,轴距2米8全系涡轮动力,高配还带自动泊车在一汽红旗彻底放飞自我之后,一汽旗下的另一乘用车品牌也吹响了集结号,向一线阵地发起冲击,它就是一汽奔腾。但与红旗不同的是,奔腾品牌在定位上就是整体面向工薪阶级的,甚至于在实际产品的最便宜的7座合资SUV欧蓝德,车长4705mm,前后独悬,比汉兰达厚道提起日系7座SUV,丰田汉兰达是绕不开的一款车型。随着更多家庭响应2胎3胎生育政策,空间多乘载成为更多消费者必须考虑的因素。但汉兰达的起售价并不低,25。88万元的起步售价令不少消