python 解析 excel 对比

版本 xls读 xlsx读 xls写 xlsx写 备注
xlrd 1.1.0(2017年8月22日) 2.0 之后不支持xlsx
xlwt 1.3.0(2017年8月22日)
openpyxl 2.6.2(2019年3月29日)
XlsxWriter 1.2.1(2019年9月14日)
xlutils 2.0.0(2019年6月9日) 需xlrd/xlwt配合
pandas 0.25.1(2019年8月22日) 需xlrd/xlwt/openpyxl/xlsxwriter配合

简介

Pandas是python的一个数据分析包,纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。

Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

Pandas官方文档:https://pandas.pydata.org/pandas-docs/stable/

Pandas中文文档:https://www.pypandas.cn

安装

  1. pandas依赖处理Excel的xlrd模块,所以我们需要提前安装 xlrd,命令:pip install xlrd

  2. 安装pandas模块还需要一定的编码环境,所以我们自己在安装的时候,确保你的电脑有这些环境:Net.4 、VC-Compiler以及winsdk_web。

  3. 步骤1和2 准备好了之后,就可以开始安装pandas了,命令:pip install pandas

pandas操作Excel表单

简单示例

import  pandas  as pd
from pandas import DataFrame# 读
data = pd.read_excel('1.xlsx')# 查看所有的值
print(data.values)# 查看第一行的值
print(data.values[0])# 查看某一列所有的值
print(data['标题列1'].values)# 新增列
data['标题列3'] = None# 新增行
data.loc[3] = ['王五', 100, '男']# 删除行:axis=0
data = data.drop([0,1], axis=0)# 删除列:axis=1
data.drop('标题列3', axis=1)# 保存
DataFrame(data).to_excel('1.xlsx', sheet_name='Sheet1', index=False, header=True)

读取excel

read_excel方法说明

pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None, squeeze=False,dtype=None, engine=None, converters=None, true_values=None, false_values=None, skiprows=None, nrows=None, na_values=None, parse_dates=False, date_parser=None, thousands=None, comment=None, skipfooter=0, convert_float=True, **kwds)io:excel文件
sheet_name:返回指定sheet,默认索引0返回第一个,也可用名称,如果返回多个则可用列表,为None则返回全表
header:指定表头,也可用列表指定多行
names:自定义列名,长度和Excel列长度必须一致
index_col:用作索引的列
usecols:读取指定的列,参数为列表,如[0,1]表示第1和第2列

读取Excel文件,得到的结果是一个二维矩阵

# 默认读取第一个表单
df=pd.read_excel('1.xlsx')# 可以通过sheet_name来指定读取的表单
df=pd.read_excel('1.xlsx',sheet_name='student')# 表格首行为无效数据 或 表格首行为空 ,header=1
rdexcle = pd.read_excel('1.xlsx',header=1)data=df.head() # 默认读取前5行的数据
print("获取到所有的值:\n{0}".format(data)) # 格式化输出# 通过表单索引来指定要访问的表单,0表示第一个表单
# 也可以采用表单名和索引的双重方式来定位表单
# 也可以同时定位多个表单,方式都罗列如下所示
df=pd.read_excel('1.xlsx',sheet_name=['python','student']) # 可以通过表单名同时指定多个
# df=pd.read_excel('1.xlsx',sheet_name=0) # 可以通过表单索引来指定读取的表单
# df=pd.read_excel('1.xlsx',sheet_name=['python',1]) # 可以混合的方式来指定
# df=pd.read_excel('1.xlsx',sheet_name=[1,2])  # 可以通过索引 同时指定多个
data=df.values # 获取所有的数据,注意这里不能用head()方法哦~
print("获取到所有的值:\n{0}".format(data))

查看属性、列名、显示前几行、后几行

data = pd.read_excel('1.xlsx')
print('显示表格的属性:',data.shape)   # 打印显示表格的属性,几行几列
print('显示表格的列名:',data.columns) # 打印显示表格有哪些列名
# head() 默认显示前5行,可在括号内填写要显示的条数
print('显示表格前三行:',data.head(1))
# tail() 默认显示后5行,可在括号内填写要显示的条数
print('显示表格后五行:',data.tail())
data = pd.read_excel('lemon.xlsx')
data.columns=['ID','NAME']         # 设置表头
data.set_index('ID',inplace=True)  # inplace=True表示 在当前表上修改。不用再新建表

三、pandas操作Excel的行列

1:读取指定的单行,数据会存在列表里面

# 读取指定行
df=pd.read_excel('lemon.xlsx')  # 这个会直接默认读取到这个Excel的第一个表单
data=df.ix[0].values#0表示第一行 这里读取数据并不包含表头,要注意哦!
print("读取指定行的数据:\n{0}".format(data))

2:读取指定的多行,数据会存在嵌套的列表里面:

df=pd.read_excel('lemon.xlsx')
data=df.ix[[1,2]].values  # 读取指定多行的话,就要在ix[]里面嵌套列表指定行数
print("读取指定行的数据:\n{0}".format(data))

3:读取指定的行列:

df=pd.read_excel('lemon.xlsx')
data=df.ix[1,2]#读取第一行第二列的值,这里不需要嵌套列表
print("读取指定行的数据:\n{0}".format(data))

4:读取指定的多行多列值:

df=pd.read_excel('lemon.xlsx')
data=df.ix[[1,2],['title','data']].values#读取第一行第二行的title以及data列的值,这里需要嵌套列表
print("读取指定行的数据:\n{0}".format(data))

5:获取所有行的指定列

df=pd.read_excel('lemon.xlsx')
data=df.ix[:,['title','data']].values#读所有行的title以及data列的值,这里需要嵌套列表
print("读取指定行的数据:\n{0}".format(data))

6:获取行号并打印输出

df=pd.read_excel('lemon.xlsx')
print("输出行号列表",df.index.values)输出结果是:
输出行号列表 [0 1 2 3]

7:获取列名并打印输出

df=pd.read_excel('lemon.xlsx')
print("输出列标题",df.columns.values)运行结果如下所示:
输出列标题 ['case_id' 'title' 'data']

8:获取指定行数的值:

df=pd.read_excel('lemon.xlsx')
print("输出值",df.sample(3).values)#这个方法类似于head()方法以及df.values方法输出值[[2 '输入错误的密码' '{"mobilephone":"18688773467","pwd":"12345678"}'][3 '正常充值' '{"mobilephone":"18688773467","amount":"1000"}'][1 '正常登录' '{"mobilephone":"18688773467","pwd":"123456"}']]

9:获取指定列的值:

df=pd.read_excel('lemon.xlsx')
print("输出值\n",df['data'].values)

四:pandas处理Excel数据成为字典

df=pd.read_excel('lemon.xlsx')
test_data=[]
for i in df.index.values:#获取行号的索引,并对其进行遍历:#根据i来获取每一行指定的数据 并利用to_dict转成字典row_data=df.ix[i,['case_id','module','title','http_method','url','data','expected']].to_dict()test_data.append(row_data)
print("最终获取到的数据是:{0}".format(test_data))

最后得到的结果是:

最终获取到的数据是:
[{'title': '正常登录', 'case_id': 1, 'data': '{"mobilephone":"18688773467","pwd":"123456"}'},
{'title': '输入错误的密码', 'case_id': 2, 'data': '{"mobilephone":"18688773467","pwd":"12345678"}'},
{'title': '正常充值', 'case_id': 3, 'data': '{"mobilephone":"18688773467","amount":"1000"}'},
{'title': '充值输入负数', 'case_id': 4, 'data': '{"mobilephone":"18688773467","amount":"-100"}'}]

python 第三方模块之 pandas 操作 excel相关推荐

  1. Python 第三方模块 数据分析 Pandas模块 字符串处理

    一.大小写转换 1.转换全部字母: 将所有字母转换为小写:<Ss>.lower() 将所有字母转换为大写:<Ss>.upper()#参数说明:Ss:指定pandas.core. ...

  2. Python之如何使用pandas操作Excel表

    目录 1.前言 2.读取Excel 3.对Excel进行操作 3.1.获取行号.列名 3.2.获取单元格的值,并循环输出 3.3.对空值进行处理,替换 3.4.增加一列,并对新增列的第一行进行赋值 3 ...

  3. python读写excel模块pandas_如何用python pandas操作excel?

    之前跟大家说过关于python处理excel的问题,但是大家反映有些繁琐,大概涉及内容比较多,于是,小编在日常学习中,发现了更简单的方式,现在给大家展示,以便于大家在日后学习里可以方便使用,一起来看下 ...

  4. python使用xlsx和pandas处理Excel表格的操作步骤

    python的神器pandas库就可以非常方便地处理excel,csv,矩阵,表格 等数据,下面这篇文章主要给大家介绍了关于python使用xlsx和pandas处理Excel表格的操作步骤,文中通过 ...

  5. Python入门到实战(五)自动化办公、pandas操作Excel、数据可视化、绘制柱状图、操作Word、数据报表生成、pip install国内镜像下载

    Python入门到实战(五)conda使用.pandas操作Excel.数据可视化.绘制柱状图.操作Word.数据报表生成.pip install国内镜像下载 conda使用 常用操作 配置VS+Co ...

  6. Python Pandas操作Excel表格文件:创建新表格,追加数据

    前言: python操作excel表格文件的增删读写,一般需要用到的第三方库有xlwt,xlrd.xlrd负责读取excel,xlwt负责写入excel文件.这种操作方法比较繁琐,效率还不错,通俗易懂 ...

  7. 使用Python第三方库xlwings将单个excel工作表快速拆分为多个工作表(附打包好的exe文件)

    使用Python第三方库xlwings将单个excel工作表快速拆分为多个工作表(附打包好的exe文件) 资源链接 CSDN:https://download.csdn.net/download/qq ...

  8. 安装命令:pip install xlrd ,pandas操作Excel学习笔记__7000

    pandas操作Excel学习笔记_loc和iloc_7000 pandas操作Excel学习笔记__7000 1.安装环境:pandas需要处理Excel的模块xlrd,所以需要提前安装xlrd.不 ...

  9. pandas操作excel的应用

    1.pandas基本读取和写入excel表格 1.1.pandas读取excel表格 import pandas as pd # 创建空DataFrame实例,DataFrame就是数据帧 df = ...

最新文章

  1. 推荐12个Android开发源码(包括应用、游戏、效果等等)
  2. Redis 基数统计:HyperLogLog 小内存大用处
  3. 第 2 章:初出茅庐【初级篇 - 2.2 贪心算法】
  4. CoffeeScript 1.9发布,引入对生成器的支持
  5. SQL Server 负载均衡集群(转)
  6. python元组添加元素_2分钟学会Python的元组使用
  7. delphi trichviewedit 设置一行的段落_HTML中的文本与段落(3)
  8. Hibernate 缓存机制(转)
  9. Java实现OPC通信
  10. MySQL【部署 04】8.0.25离线部署(下载+安装+配置)Failed dependencies 问题处理及8.0配置参数说明
  11. SRT视频字幕的解析与同步
  12. ubuntu wifi 设备未托管 网络设备不兼容 网络慢
  13. linux发邮件到126,Linux上,用bash通过126邮箱发邮件。
  14. linux cp 排除文件,cp、tar命令排除文件和子目录 - 米扑博客
  15. 神经网络中常用激活函数图像绘制(Python)
  16. linux 设置邮件提醒,linux 定时邮件提醒
  17. Python基础-08
  18. 3dmax2019卸载/安装失败/如何彻底卸载清除干净3dmax2019注册表和文件的方法
  19. 蒲慕明教授的一封Email
  20. 合并两个有序数组两种方式

热门文章

  1. 帮助子女成功的十大路径
  2. predict_16x16[i_mode]( p_dst, i_stride )lowres
  3. 解决:Dockerfile 中执行 tar 命令始终报错:tar: /xx/xx: Cannot stat: No such file or directory tar: Exiting with
  4. Map 四种获取 key 和 value 值的方法,以及对 map 中的元素排序
  5. lineNumber: 1; columnNumber: 1; 前言中不允许有内容
  6. Linux中打开文件管理器的命令
  7. css样式变 及实际用法
  8. echarts 柱状图 ,颜色和显示设置
  9. 新安装数据库sqlserver2008r2,使用javaweb连接不上问题处理
  10. android开发中EditText自动获取焦点时隐藏hint的代码