python pandas读取excel时动态确定标题行所在行数
python pandas读取excel时动态确定标题行所在行数,动态跳过标题前空白行
利用python对excel或者csv文件进行批量操作时,除了使用xlrd库或者xlwt库进行表格的操作读与写,还可以使用pandas库进行类似的操作,而且一些情况下pandas操作更加简介方便。
pandas的read_csv或者read_excel方法可以进行读取操作,我们看到参数很多,使用skiprows可以设置跳过相应的行数:
pd.read_excel(io, sheetname=0,header=0,skiprows=None,index_col=None,names=None,arse_cols=None,date_parser=None,na_values=None,thousands=None, convert_float=True,has_index_names=None,converters=None,dtype=None,true_values=None,false_values=None,engine=None,squeeze=False,**kwds)io参数:一般是文件路径+文件名,sheet_name参数:用来设置读取的工作表名称,可以为str,int,list或None,默认0。
设置为整数用于零索引工作表位置,字符串/整数列表用于请求多个工作表。设置None获取所有工作表。header参数:用来指定哪些行作为列名的,默认是第0行,接收的参数可以是整数,可以是有整数组成的列表index_col参数:指定用哪些列做为行索引,可以接收整数,或者由整数组成的列表,默认是None。
这个参数的作用是指定用哪一列做为行索引。如果传给参数的是整数n,则表示指定第n列作为行索引,如果传入的是列表,则表示需要指定多列作为行索引。skiprows参数:要跳过的行或行范围(甚至是lambda)
下面是操作文件案例:
我们观察到,多个工作表中的标题前一定数量的空行无用行,而且不同工作表标题前的空行数量不一样,导致行索引的行位置不确定,能不能让程序自己来判断,跳过相应的行数呢
import pandas as pd
import numpy as np
import redfs=pd.read_excel(r".\cz_2020.9-2021.1.xls",sheet_name=None,header=None,index_col=None,skiprows=None)
df_dst=pd.DataFrame(data=None,columns=["姓名","年级","合计"])for sht_name,df in dfs.items():#仅仅读取 XXXX.XX格式的工作表if re.match(r"\d{4}\.\d{1,2}",sht_name):# first_row = (df.count(axis=1) >= df.shape[1]).idxmax() #查找列名所在行数的一种方法,处理10,11月份没有问题,9月份出现问题first_row = (df.count(axis=1) >= df.count(axis=1).max()).idxmax() #查找列名所在行数的另一种办法print("工作表:%s 跳过了%d行" %(sht_name,first_row))df.columns=df.loc[first_row] #更改当前df的列索引名称df.rename(columns =lambda x:str(x).strip("\r\n\t ."),inplace=True) #去掉列名首位的空白字符df=df.loc[first_row+1:]df_dst=pd.merge(df_dst,df[["姓名","年级","合计"]],how="outer",on="姓名",suffixes=("",sht_name)) #以姓名作为公共列,对多个df数据集进行连接。#print(df)else:print(sht_name,"ignore")#删掉第一个年级列,将第一个合并列移动到最后
df_tmp=df_dst.pop("合计")
df_dst.insert(df_dst.shape[1],"合计",df_tmp)
df_dst= df_dst.drop(["年级"],axis=1)
df_dst.to_excel(r"..\wage\wage_dst.xls")
程序运行结果如下:
最关键的代码如下:
# first_row = (df.count(axis=1) >= df.shape[1]).idxmax() #查找列名所在行数的一种方法,处理10,11月份没有问题,9月份出现问题first_row = (df.count(axis=1) >= df.count(axis=1).max()).idxmax() #查找列名所在行数的另一种办法df.columns=df.loc[first_row] #更改当前df的列索引名称df=df.loc[first_row+1:]
也就是充分利用df.count(axis=1)的效果,对10,11月份的工作表使用(df.count(axis=1) >= df.shape[1]).idxmax()也可以达到效果,但是
(df.count(axis=1) >= df.count(axis=1).max()).idxmax()的适用性更强
python pandas读取excel时动态确定标题行所在行数相关推荐
- Python+Pandas读取Excel文件分析关系最好的两个演员
董老师又双叒叕送书啦,6本<Python程序设计基础与应用(第2版)> 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国 ...
- Python+pandas读取Excel文件统计最受欢迎的前3位演员
推荐教材:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社,2018.8出版,2021.3第11次印刷 图书详情: 配套资源: 用书教师可 ...
- python pandas读取excel文件
python pandas读取excel文件 data=pd.read_excel('C:\Users\86188\python\dummy.xlsx') 会报错:SyntaxError: (unic ...
- python pandas 读取excel 去重某一列_Python中Pandas读取修改excel操作攻略(代码示例)...
本篇文章给大家带来的内容是关于Python中Pandas读取修改excel操作攻略(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 环境:python 3.6.8 以某米赛 ...
- Python+pandas读取Excel文件并统计演员参演电影数量
Excel样本数据请参考Python读取Excel文件并统计演员参演电影 >>> import pandas as pd >>> df = pd.read_exce ...
- Python Pandas 读取 Excel 表格处理出席表
一.思路 背景 EXCEL 表格中有每天大家到场的记录,每页格式相同,包含人名.日期和是否到场参加(也可线上).如下: 思路 目标:统计每个人来了几次(进阶一点的话,包括线下线上). 思路:(字典,p ...
- python pandas 读取excel单元门公式值_Python pandas对excel的操作实现示例
最近经常看到各平台里都有Python的广告,都是对excel的操作,这里明哥收集整理了一下pandas对excel的操作方法和使用过程.本篇介绍 pandas 的 DataFrame 对列 (Colu ...
- 【实践3】Python pandas读取Excel指定单元格 / 在指定单元格插入数据,不改变Excel格式
简单介绍 有时会遇到只需将爬取的数据填入指定的单元格,而不需要更改Excel格式的情况,或是将一个Excel指定单元格内容复制后插入另一个Excel的单元格. 完整代码 import pandas a ...
- Python pandas读取excel单元格数据,显示不全问题
用pandas的pd.read_excel()方法在读取一个存储图片URL路径的EXCEL表格数据时,由于路径较长,出现了单元格内容显示不全的问题.尤其是在使用pd.to_excel()将处理好的数据 ...
最新文章
- iphone adb android,通过ADB获取Android手机信息
- ios android 发东西,Android、IOS主动发事件给React Native
- 如何在Debian上安装配置ownCloud
- 苹果开发者账号可以创建多少测试证书_ios苹果企业账号你所不知道的那些点
- oracle+内存错误,oracle使用内存的错误,ORA-27102: out of memory
- 第8章 数据库的分库分表
- .Net读取rss的两种方法
- php中js验证表单,js实现表单验证
- 公司新来了个00后测试卷王,老油条表示是真干不过,已被……
- 两种方式设置单元格的下划线
- JSON cannot be resolved 解决方法
- Java使用POI导入excel教程
- Python函数调用
- 吴恩达-deep learning 02.改善深层神经网络:优化算法 (Optimization algorithms)Week2
- 独立操作按钮操作后自动失焦
- 怎么靠网络的正常渠道赚钱?
- 所有用户登陆后都在桌面上显示计算机图标,如何在Win10桌面上显示计算机.控制面板.网络.用户的文件图标?...
- spacy语言模型安装踩坑经历
- NSGA-II改进之种群初始化
- 另一个jar包引不了_《嫌疑人X的献身》:一个天才的陨落