背景:

有时候可能会遇到数据量巨大的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表操作示例相关推荐

  1. arcgis怎么关联excel表_在arcgis中添加excel表格数据-ArcGIS如何将Excel里的数据关联至地图上...

    ArcGIS如何将Excel里的数据关联至地图上 1.打开一个arcgis工程文件. 2.在左侧窗口中右击面要素文件,选择"open attribute table". 3.在出现 ...

  2. python能实现excel什么功能_Python pandas对excel的操作实现示例

    最近经常看到各平台里都有Python的广告,都是对excel的操作,这里明哥收集整理了一下pandas对excel的操作方法和使用过程.本篇介绍 pandas 的 DataFrame 对列 (Colu ...

  3. python pandas excel 排序_Python pandas对excel的操作实现示例

    最近经常看到各平台里都有Python的广告,都是对excel的操作,这里明哥收集整理了一下pandas对excel的操作方法和使用过程.本篇介绍 pandas 的 DataFrame 对列 (Colu ...

  4. springmvc使用easypoi导出导入Excel表(1):导出Excel表

    编译工具:eclipse 项目:maven+ssm springmvc使用easypoi导出导入Excel表(2):导入Excel表 在pom.xml引入easypoi的依赖包: <!--eas ...

  5. arcgis怎么关联excel表_arcgis中如何跟excel连接?

    展开全部 一:arcgis属性表与excel建立连接: 1):原始数据属性表如图: excel表数据如下:32313133353236313431303231363533e58685e5aeb9313 ...

  6. dataframe两个表合并_史上代码最少的工作表拆分,仅需5行,不可思议

    工作中,很多小伙伴都会遇到一些需求,将一份Excel文档按照部门进行拆分,每个部门是一个单独的工作表,或者每个部门整理的工作表汇总为一份总的工作表.读者需要注意的是,多个工作表的拆分与合并,始终在一个 ...

  7. 两个链接合并_如何找到两个链接列表的合并点

    两个链接合并 了解问题 (Understand the Problem) We are given two singly linked lists and we have to find the po ...

  8. c语言讲两个数组合并_两列数据相互去掉重复值后合并

    大家好,今日继续讲VBA数组与字典解决方案的第27讲,内容是两列数据中相互去掉重复值之后将数据合并.这讲的内容利用到动态数组,固定数组,数组的合并,数组的转置等等. 还是先看实例,下面的工作表中A列和 ...

  9. c++两个vector合并_这才是真正的 Git:分支合并

    公众号关注 "GitHubDaily"设为 "星标",每天带你逛 GitHub! 本文作者:lzaneli,腾讯 TEG 前端开发工程师 "合并前文件 ...

  10. c++两个vector合并_这才是真正的 Git——分支合并

    本文作者:lzaneli,腾讯 TEG 前端开发工程师 "合并前文件还在的,合并后就不见了"."我遇到 Git 合并的 bug 了" 是两句经常听到的话,但真的 ...

最新文章

  1. nginx+tomcat实现集群负载均衡(实现session复制)
  2. R语言使用ggplot2绘制带有边缘直方图的散点图实战
  3. [翻译]Json.NET API-Linq to Json Basic Operator(基本操作)
  4. Packet Tracer 5.0建构CCNA实验攻略(3)——Cisco VTP
  5. Android 显示全文折叠控件
  6. 前端学习(1812):前端调试之shadow练习
  7. pywin32 获取窗口句柄_Excel VBA | 这个窗口居然关不掉
  8. 用python怎么样实现图像二值化_使用Python+OpenCV如何实现图像二值化
  9. android camera(3)--- 高通平台8916 camera移植
  10. 利用HttpWebRequest实现实体对象的上传
  11. 神经网络画图-ConvNetDraw(简单实用)
  12. grafana默认用户名密码_提升运维格调?Grafana整合Zabbix
  13. java 进程 互斥锁_Linux 进程互斥锁 - Khan's Notebook GCC/GNU/Linux Delphi/Window Java/Anywhere - C++博客...
  14. C语言程序设计题解pdf,C语言程序设计题解与上机指导.pdf
  15. java软件工程师 英文简历_java软件工程师英文简历模板3篇
  16. SQLCODE 错误对照表
  17. postgresql去除首尾空格
  18. 基于单片机的水温液位监测系统设计(#0513)
  19. 音视频数据处理入门:AAC音频码流解析
  20. Molecular Psychiatry:对四种主要精神疾病间的白质微结构改变的大型mega分析

热门文章

  1. flashback query闪回数据
  2. Struts2(三)
  3. ServiceStack.Redis之IRedisClient(转载)
  4. 编写一个简单的widget
  5. 【Tensorlayer系列】深度强化学习之FrozenLake介绍及表格型Q学习求解
  6. 智能优化算法:适应度相关优化算法 - 附代码
  7. ENVI学习总结(十一)——NDVI的计算
  8. nodejs实现同步http请求
  9. listview 加载的时候报java.lang.IllegalArgumentException: column ‘_id’ does not exist 错误
  10. linux java部署tomcat_Linux 使用脚本安装Tomcat并部署程序