【数据分析&数据挖掘】数据合并和拼接案例

 1 import pandas as pd
 2 import numpy as np
 3
 4 # 加载数据——detail
 5 detail_1 = pd.read_excel("./meal_order_detail.xlsx", sheetname=0)
 6 detail_2 = pd.read_excel("./meal_order_detail.xlsx", sheetname=1)
 7 detail_3 = pd.read_excel("./meal_order_detail.xlsx", sheetname=2)
 8
 9 print("detail_1 的形状: \n", detail_1.shape)
10 print("detail_1 的列索引: \n", detail_1.columns)
11 print("detail_2 的形状: \n", detail_2.shape)
12 print("detail_2 的列索引: \n", detail_2.columns)
13 print("detail_3 的形状: \n", detail_3.shape)
14 print("detail_3 的列索引: \n", detail_3.columns)
15
16 print("~"*60)
17 # 将detail_2, detail_3直接追加到detaiL_1下面
18 detail = pd.concat((detail_1, detail_2, detail_3), axis=0, join="inner")
19 print("detail的形状;\n", detail.shape)
20
21
22 # 加载info
23 info = pd.read_csv("./meal_order_info.csv", encoding="ansi")
24 print("info: \n", info.shape)
25
26 # info与detail进行主键拼接
27 res = pd.merge(left=detail, right=info, left_on="order_id", right_on="info_id", how="inner")
28 res = pd.merge(left=detail, right=info, left_on="order_id", right_on="info_id", how="left")
29 print("info与detail主键拼接的结果为: \n", res.shape)
30 print("res的列名: \n", res.columns)
31
32
33 # 加载users
34 users = pd.read_excel("./users.xlsx")
35 # info与detail进行主键拼接的结果与users进行主键拼接
36 res = pd.merge(left=res, right=users, left_on="name", right_on="ACCOUNT", how="inner")
37 print("最终进行主键拼接的结果: \n", res)
38 print("最终res的列名称: \n", res.columns)
39
40 print("name与ACCOUNT对比相同", np.all(res.loc[:, "name"] == res.loc[:, "ACCOUNT"]))
41 print("order_id与info_id对比相同", np.all(res.loc[:, "order_id"] == res.loc[:, "info_id"]))
42 print("emp_id_x与emp_id_y对比相同", np.all(res.loc[:, "emp_id_x"] == res.loc[:, "emp_id_y"]))
43
44 res.drop(labels=["ACCOUNT", "info_id", "emp_id_y"], axis=1, inplace=True)
45
46 print("删除3列之后的结果: \n", res.shape)
47 print("删除3列之后的结果: \n", res.columns)
48
49 drop_list = []
50 for column in res.columns:
51     # 统计每一列的非空数据的数量
52     res_count = res.loc[:, column].count()
53     # 如果整列非空数据的数量为0,意味着整列都是空的
54     if res_count == 0:
55         drop_list.append(column)
56
57 # 删除整列为空的列
58 res.drop(labels=drop_list, axis=1, inplace=True)
59 print("去除整列为空的数据之后的结果: \n", res.shape)
60 print("去除整列为空的数据之后的结果: \n", res.columns)
61
62 drop_dup_list = []
63 # 如果整列数据完全相同——该列, 该属性对于区分各列没有意义
64 for column in res.columns:
65     res_ = res.drop_duplicates(subset=column, inplace=False)
66     if res_.shape[0] == 1:
67         print("res_.shape[0]: \n", res_.shape[0])
68         drop_dup_list.append(column)
69
70 # 删除全部一样的列
71 res.drop(labels=drop_dup_list, axis=1, inplace=True)
72 print("最终的结果: \n", res.shape)
73 print("最终的结果: \n", res.columns)

原文地址:https://www.cnblogs.com/Tree0108/p/12116107.html

时间: 2024-10-09 10:11:57

【数据分析&数据挖掘】数据合并和拼接案例的相关文章

Python数据分析库pandas ------ merge、concatenation 、pd.concat合并与拼接

对于合并操作,熟悉SQL的读者可以将其理解为JOIN操作,它使用一个或多个键把多行数据 结合在一起. 事实上,跟关系型数据库打交道的开发人员通常使用SQL的JOIN查询,用几个表共有的引用 值(键)从不同 的表获取数据.以这些键为基础,我们能够获取到列表形式的新数据,这些数据是对几个表中的数据进行组合 得到的.pandas库中这类操作叫作合并,执行合并操作的函数为 merge(). 1 import pandas as pd 2 import numpy as np 3 4 frame1 = p

SQL 将一条记录中多个字段的值拼接为一个字段 && 将多行数据合并成一行,并且拼接CONVERT() 、for xml path的使用

接着上篇文章的订单表(商品编号,价格设置时间id(类似于创建时间,创建时间约早,则act_id越小) ,价格的时间段,商品价格) 一.将一条记录中多个字段的值拼接为一个字段 现要求将两个时间段合并为一个字段,应该如何做呢? 先来看下理想的结果: 查询出的时间段合并到一起了: 代码如下,将查询的字段用+'你想要的符号' + 拼接即可 select item,act_id,loc_id,convert(varchar(100),start_date,20)+ '-' +convert(varchar

新的学习路径、学习想法和思路的头脑风暴:基于泰迪云课程,对数据分析和数据建模,机器学习算法进行统筹,接着是基于大数据的数据挖掘、进度、

新的学习路径.学习想法和思路的头脑风暴:基于泰迪云课程,对数据分析和数据建模,机器学习算法进行统筹,接着是基于大数据的数据挖掘.进度. 泰迪云代码已经下载,对相关内容进行应用和学习 想通视频之后对代码进行研究 专家经验.优秀经验工程师经验转化. 从论文中第三四大章,读取 设计和解决问题流程 找论文.使用benchmark 上有收录论文.找到论文.不建议自己先去想. 以后一定 偏分析,偏挖掘.偏决策的.不是执行者,执行者是最low的,最强的解决方案,都按论文来找. 高端会议.每年会出来十多篇研究成

利用python进行数据分析之数据规整化

数据分析和建模大部分时间都用在数据准备上,数据的准备过程包括:加载,清理,转换与重塑. 合并数据集 pandas对象中的数据可以通过一些内置方法来进行合并: pandas.merge可根据一个或多个键将不同DataFrame中的行连接起来,实现类似于数据库中的连接操作. pandas.cancat表示沿着一条轴将多个对象堆叠到一起. 实例方法combine_first可以将重复数据编接在一起,用一个对象中的值填充另一个对象的缺失值. 下面将进行分别讲解: 1.数据库风格的DateFrame合并

利用excel VBA进行自动化数据分析,数据汇总,网页表单自动提交等功能

在制造业公司的生产管理,经营管理,采购管理,财务管理等工作中,都有大量的数据处理的任务,通过繁复的excel手工运算获取结果.通过员工培训和自我提升,掌握和使用excel数组公式和VBA自动化,能为员工节省巨大的时间和精力,提高工作附加值.同时作为公司效率化和系统化改善的一部分,为公司效益带来显著提升.以下通过一些案例,展示利用excel公式和VBA进行自动化数据分析,数据汇总,网页表单自动提交在实际场景中的典型应用.相关的文件和代码可以在github下载. 自动化数据分析 以下是通过VBA自动

[转] - 浅谈数据分析和数据建模

大数据应用有几个方面,一个是效率提升,帮助企业提升数据处理效率,降低数据存储成本.另外一个是对业务作出指导,例如精准营销,反欺诈,风险管理以及业务提升.过去企业都是通过线下渠道接触客户,客户数据不全,只能利用财务数据进行业务运营分析,缺少围绕客户的个人数据,数据分析应用的领域集中在企业内部经营和财务分析. 数字时代到来之后,企业经营的各个阶段都可以被记录下来,产品销售的各个环节也被记录下来,客户的消费行为和网上行为都被采集下来.企业拥有了多维度的数据,包括产品销售数据.客户消费数据.客户行为数据

基于大数据技术推荐系统算法案例实战视频教程(项目实战)

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv

Pandas中DataFrame数据合并、连接(concat、merge、join)之merge

二.merge:通过键拼接列 类似于关系型数据库的连接方式,可以根据一个或多个键将不同的DatFrame连接起来. 该函数的典型应用场景是,针对同一个主键存在两张不同字段的表,根据主键整合到一张表里面. merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True, suffixes=('_x', '_y'), copy=Tr

【转】数据分析/数据挖掘 入门级选手建议

1.数据分析和数据挖掘联系和区别 联系:都是搞数据的 区别:数据分析偏统计,可视化,出报表和报告,需要较强的表达能力.数据挖掘偏算法,重模型,需要很深的代码功底,要码代码,很多= =. 2.怎么入门 请百度"如何成为一名数据分析师"或者"如何成为一名数据挖掘工程师".英文好上Quora,不行上知乎,看看入门资料. 3.选哪些书 看入门资料给你提供的书,有电子版下电子版,没电子版买纸质书,花不了多少钱. 4.用什么语言 数据分析:excel是必须,R是基本,pytho