dataframe两个表合并_使用Pandas关联Excel表操作示例
背景:
有时候可能会遇到数据量巨大的excel文件,操作起来异常困难,这时候用Pandas处理就比较方便了。
示例:
一个excel文件中有两张表,如下:
info表
degree表
需要将两张表关联,保留sno、course、degree、name字段,并且按照course进行分组,按照degree进行排序。
其中,会涉及到查看表结构、去重、处理缺失值、关联、保存等操作,代码如下:
import numpy as np
from numpy import nan as NaN
import pandas as pd
from pandas import Series, DataFrame
#获取文件sheet名称、sheet总数量
exl=pd.ExcelFile('./testdata.xlsx')
print(exl.sheet_names,len(exl.sheet_names))
#查看每个sheet前3条数据
info=pd.read_excel('./testdata.xlsx',sheet_name='info')
print(info.head(3))
print(info.shape)
degree=pd.read_excel('./testdata.xlsx',sheet_name='degree')
print(degree.head(3))
print(degree.shape)
#处理info表中重复值,以sno为唯一去重,保留重复值第一行
info=info.drop_duplicates(['sno'],keep='first')
#缺失值处理
#用列的平均值填充
# info=info.fillna(info.mean())
#用常数填充
info=info.fillna(18)
#将info表和degree表合并
m1=pd.merge(degree,info,on='sno',suffixes=['_info','_degree'])
#删除年龄列
m1=m1.drop(['age'],axis=1)
#普通单列排序,按照成绩排序
#ascending表示降序或升序
#method可选择densefirstminmax,可自行查询用法
# m1['sort_num']=m1['degree'].rank(ascending=0,method='dense')
# m1=m1.sort_values(by='sort_num',ascending=True)
#按照course分组,按成绩排名(即:row_number()over()函数)
m1['group_sort']=m1['degree'].groupby(m1['course']).rank(ascending=0,method='dense')
m1=m1.sort_values(by=['course','group_sort'],ascending=True)
#保存m1表
writer = pd.ExcelWriter('m1.xlsx')
m1.to_excel(writer,sheet_name='m1')
writer.save()
writer.close()
运行后结果如下:
dataframe两个表合并_使用Pandas关联Excel表操作示例相关推荐
- arcgis怎么关联excel表_在arcgis中添加excel表格数据-ArcGIS如何将Excel里的数据关联至地图上...
ArcGIS如何将Excel里的数据关联至地图上 1.打开一个arcgis工程文件. 2.在左侧窗口中右击面要素文件,选择"open attribute table". 3.在出现 ...
- python能实现excel什么功能_Python pandas对excel的操作实现示例
最近经常看到各平台里都有Python的广告,都是对excel的操作,这里明哥收集整理了一下pandas对excel的操作方法和使用过程.本篇介绍 pandas 的 DataFrame 对列 (Colu ...
- python pandas excel 排序_Python pandas对excel的操作实现示例
最近经常看到各平台里都有Python的广告,都是对excel的操作,这里明哥收集整理了一下pandas对excel的操作方法和使用过程.本篇介绍 pandas 的 DataFrame 对列 (Colu ...
- springmvc使用easypoi导出导入Excel表(1):导出Excel表
编译工具:eclipse 项目:maven+ssm springmvc使用easypoi导出导入Excel表(2):导入Excel表 在pom.xml引入easypoi的依赖包: <!--eas ...
- arcgis怎么关联excel表_arcgis中如何跟excel连接?
展开全部 一:arcgis属性表与excel建立连接: 1):原始数据属性表如图: excel表数据如下:32313133353236313431303231363533e58685e5aeb9313 ...
- dataframe两个表合并_史上代码最少的工作表拆分,仅需5行,不可思议
工作中,很多小伙伴都会遇到一些需求,将一份Excel文档按照部门进行拆分,每个部门是一个单独的工作表,或者每个部门整理的工作表汇总为一份总的工作表.读者需要注意的是,多个工作表的拆分与合并,始终在一个 ...
- 两个链接合并_如何找到两个链接列表的合并点
两个链接合并 了解问题 (Understand the Problem) We are given two singly linked lists and we have to find the po ...
- c语言讲两个数组合并_两列数据相互去掉重复值后合并
大家好,今日继续讲VBA数组与字典解决方案的第27讲,内容是两列数据中相互去掉重复值之后将数据合并.这讲的内容利用到动态数组,固定数组,数组的合并,数组的转置等等. 还是先看实例,下面的工作表中A列和 ...
- c++两个vector合并_这才是真正的 Git:分支合并
公众号关注 "GitHubDaily"设为 "星标",每天带你逛 GitHub! 本文作者:lzaneli,腾讯 TEG 前端开发工程师 "合并前文件 ...
- c++两个vector合并_这才是真正的 Git——分支合并
本文作者:lzaneli,腾讯 TEG 前端开发工程师 "合并前文件还在的,合并后就不见了"."我遇到 Git 合并的 bug 了" 是两句经常听到的话,但真的 ...
最新文章
- nginx+tomcat实现集群负载均衡(实现session复制)
- R语言使用ggplot2绘制带有边缘直方图的散点图实战
- [翻译]Json.NET API-Linq to Json Basic Operator(基本操作)
- Packet Tracer 5.0建构CCNA实验攻略(3)——Cisco VTP
- Android 显示全文折叠控件
- 前端学习(1812):前端调试之shadow练习
- pywin32 获取窗口句柄_Excel VBA | 这个窗口居然关不掉
- 用python怎么样实现图像二值化_使用Python+OpenCV如何实现图像二值化
- android camera(3)--- 高通平台8916 camera移植
- 利用HttpWebRequest实现实体对象的上传
- 神经网络画图-ConvNetDraw(简单实用)
- grafana默认用户名密码_提升运维格调?Grafana整合Zabbix
- java 进程 互斥锁_Linux 进程互斥锁 - Khan's Notebook GCC/GNU/Linux Delphi/Window Java/Anywhere - C++博客...
- C语言程序设计题解pdf,C语言程序设计题解与上机指导.pdf
- java软件工程师 英文简历_java软件工程师英文简历模板3篇
- SQLCODE 错误对照表
- postgresql去除首尾空格
- 基于单片机的水温液位监测系统设计(#0513)
- 音视频数据处理入门:AAC音频码流解析
- Molecular Psychiatry:对四种主要精神疾病间的白质微结构改变的大型mega分析
热门文章
- flashback query闪回数据
- Struts2(三)
- ServiceStack.Redis之IRedisClient(转载)
- 编写一个简单的widget
- 【Tensorlayer系列】深度强化学习之FrozenLake介绍及表格型Q学习求解
- 智能优化算法:适应度相关优化算法 - 附代码
- ENVI学习总结(十一)——NDVI的计算
- nodejs实现同步http请求
- listview 加载的时候报java.lang.IllegalArgumentException: column ‘_id’ does not exist 错误
- linux java部署tomcat_Linux 使用脚本安装Tomcat并部署程序