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

摘要:
1importpandasaspd2importnumpyasnp34#加载数据——detail5detail_1=pd.read_excel("./meal_order_detail.xlsx",sheetname=0)6detail_2=pd.read_excel("./meal_order_detail.xlsx",sheetname=1)7detail_3=pd.read_excel(".
1 importpandas as pd
2 importnumpy 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 的形状: 
", detail_1.shape)
10 print("detail_1 的列索引: 
", detail_1.columns)
11 print("detail_2 的形状: 
", detail_2.shape)
12 print("detail_2 的列索引: 
", detail_2.columns)
13 print("detail_3 的形状: 
", detail_3.shape)
14 print("detail_3 的列索引: 
", 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的形状;
", detail.shape)
20 
21 
22 #加载info
23 info = pd.read_csv("./meal_order_info.csv", encoding="ansi")
24 print("info: 
", 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主键拼接的结果为: 
", res.shape)
30 print("res的列名: 
", 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("最终进行主键拼接的结果: 
", res)
38 print("最终res的列名称: 
", 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列之后的结果: 
", res.shape)
47 print("删除3列之后的结果: 
", res.columns)
48 
49 drop_list =[]
50 for column inres.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("去除整列为空的数据之后的结果: 
", res.shape)
60 print("去除整列为空的数据之后的结果: 
", res.columns)
61 
62 drop_dup_list =[]
63 #如果整列数据完全相同——该列, 该属性对于区分各列没有意义
64 for column inres.columns:
65     res_ = res.drop_duplicates(subset=column, inplace=False)
66     if res_.shape[0] == 1:
67         print("res_.shape[0]: 
", res_.shape[0])
68 drop_dup_list.append(column)
69 
70 #删除全部一样的列
71 res.drop(labels=drop_dup_list, axis=1, inplace=True)
72 print("最终的结果: 
", res.shape)
73 print("最终的结果: 
", res.columns)

免责声明:文章转载自《【数据分析&数据挖掘】数据合并和拼接案例》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇利用ADO操作外部数据——Excel之VBA(15)解决cocos2dx在VS2012中文版环境下不支持中文的问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

解决ajax异步请求数据后swiper不能循环轮播(loop失效)问题、滑动后不能轮播的问题。

问题描述: 1、我使用axios异步请求后台的图片进行渲染后不能实现循环轮播,也就是loop失效,但是静态写死的情况下不会出现这种问题。 2、 分析: swiper的机制是:初始化的时候将swiper-warpperslide类下的最后一个swiper-slide块克隆到第一个的位置,将第一个swiper-slide块克隆岛最后一个的位置,然后自动扫描sw...

mysql 把备份数据文件还原后乱码处理方法

1、检测创建数据库是否设置编码格式     create database dbname DEFAULT CHARSET=utf8; 2、检测数据库备份文件中的首行是否存在编码设置    /*!40101 SET NAMES utf8 */;...

数据结构基础之memset---有memset 抛出的int 和 char 之间的转换和字节对齐

今天晚上,在做滤波算法时,里面用到很多float 和int 以及char 之间的类型强制转换,后面滤波完发现图片有些区域块,有过度曝光的白光,我就跟踪,以为是char 字符数字数据溢出问题,加了0-255的判断,然后打印,发现强制转换后的int类型数据多处出现负数,很奇怪,后面写了个测试程序,慢慢的问题出来了 : #include <stdio.h&...

SQL Server数据库之间进行数据导入导出

在SQL Server数据库之间进行数据导入导出   (1).使用SELECT INTO导出数据 在SQL Server中使用最广泛的就是通过SELECT INTO语句导出数据,SELECT INTO语句同时具备两个功能:根据SELECT后跟的字段以及INTO后面跟的表名建立空表(如果SELECT后是*, 空表的结构和FROM所指的表的结构相同);将SEL...

OM模块功能&amp;amp;API详解

(一)销售订单概述 1.1   与车间模块关系 当使用ATO类型订单时,订单管理模块会直接在车间模块中产生任务 1.2   与库存模块关系 在销售订单中使用的物料,单位等信息均来自库存模块,在订单执行过程中,按订单保留及销售发运等功能也会对库存模块起作用 1.3   与应收模块关系 销售完成后,订单管理模块会在应收接口中产生INVOICE信息,影响应收...

Spark在美团的实践

https://tech.meituan.com/2016/03/31/spark-in-meituan.html 本文已发表在《程序员》杂志2016年4月期。 前言 美团是数据驱动的互联网服务,用户每天在美团上的点击、浏览、下单支付行为都会产生海量的日志,这些日志数据将被汇总处理、分析、挖掘与学习,为美团的各种推荐、搜索系统甚至公司战略目标制定提供数据支...