一、使用pandas读取xlsx

  引用pandas库

import pandas as pd
pd.read_excel(path, 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)

pandas读取Excel后返回DataFrame;

二、解析pd.read_excel()的常用参数

1.path --> xlsx的存储路径(建议使用英文路径或者英文命名方式)

import pandas as pd
path = r'D:\Testdatabase\data\data.xlsx'

2.sheet_name --> 读取工作表(sheet)名称

sheet_name:None代表读取所有的sheet,返回的就是一个ordereddict;指定就只读取指定sheet,只有一个返回的就是dataframe

# 整型数字、列表名、SheetN、或者是以上三组组合列表

# 整型数字:目标sheet所在位置,以0开始,比如sheet_name = 0代表第1个工作表
data = pd.read_excel(path, sheet_name = 1)
ss = data.head()
print(ss) # 工作表名:目标sheet的名称,可用中英文
data = pd.read_excel(path, sheet_name = '账号密码')
data.head() # SheetN:表示第N个sheet,S必须大写,注意与整型数字的区别使用
data = pd.read_excel(path, sheet_name = 'Sheet5')
data.head() # 组合使用
# sheet_name = [0, '车辆信息', 'Sheet4'],代表读取三个工作表,分别为第1个工作表、名为“车辆信息”的工作表和第4个工作表。显然,Sheet4未经重命名。
# sheet_name 默认为0,取Excel第一个工作表。如果读取多个工作表,则显示表格的字典
data = pd.read_excel(path, sheet_name = ['账号密码', '车辆信息'], nrows = 5)
# sheet_name = ['账号密码', '车辆信息'] ,返回两个工作表组成的字典
data.head()

3.header --> 指定前几行作为列名(指定数据表的表头,默认值为0,即将第一行作为表头。)

# 默认[0],即首行作为列名,设置为[0,1],即表示将前两行作为多重索引
data = pd.read_excel(path, sheet_name = '车辆信息', header = [0,1])
# 前两行作为列名。
data.head()
data = pd.read_excel(path, sheet_name = '车辆信息', header = [0,1,2])
# 前三行作为列名
data.head()

4.names --> 自定义列名

# 一般适用于Excel缺少列名,或者需要重新定义列名的情况
# 注意:names的长度必须和Excel列长度一致,否则会报错
data = pd.read_excel(path, sheet_name = '英超射手榜',
names = ['car_plate','sim_num','club','goal','common_goal','penalty'])
data.head()

5.index_col --> 用作索引的列

# 可以是工作表列名称,如index_col = '车牌号';
data = pd.read_excel(path, sheet_name = '车辆信息', index_col = '车牌号')
data.head() # 可以是整型或整型列表,如index_col = 0 或 [0, 1],如果选择多个列,则返回多重索引
data = pd.read_excel(path, sheet_name = '车辆信息', index_col = [0, 1])
data.head()

6.usecols --> 读取指定的列

# usecols 可避免读取全量数据,而是以分析需求为导向选择特定数据,可以大幅提高效率
# 使用整型,从0开始,如[0,2,3]
data = pd.read_excel(io, sheet_name = '车辆信息', usecols = [0, 1, 2]) # 想要读取第一列、第二列、和第三列的数据
data.head() # 可以使用Excel传统的列名“A”、“B”等字母,如“A:C, E” ="A, B, C, E",注意两边都包括
data = pd.read_excel(path, sheet_name = '车辆信息', usecols = 'A:C, E')
data.head()

7.squeeze --> 当工作表只有一列

# squeeze为True时,返回Series,反之返回DataFrame
data = pd.read_excel(path, sheet_name = '新增车组名', squeeze = True)
data.head()

data = pd.read_excel(path, sheet_name = '新增车组名', squeeze  = False)
data.head()

8.skiprows --> 跳过特定行

# skiprows= n, 跳过前n行; skiprows = [a, b, c],跳过第a+1,b+1,c+1行(索引从0开始)
# 使用skiprows 后,有可能首行(即列名)也会被跳过。
data = pd.read_excel(path, sheet_name = '新增车组名', skiprows = [1,2,3])
# 跳过第2,3,4行数据(索引从0开始,包括列名)
data.head() # 跳过前三行
data = pd.read_excel(io, sheet_name = '新增车组名', skiprows = 3)
data.head()

9.nrows --> 读取指定行数

# 读取指定行数, nrows = 10 ,即读取10行数据
data = pd.read_excel(path, sheet_name = '新增车组名', nrows = 10)
data.head()

10.skipfooter --> 跳过末尾N行

data = pd.read_excel(path , sheet_name = '新增车组名', skipfooter = 18)
# skipfooter = 18, 跳过末尾0-18行(索引从0开始)
data.head()

11.converters --> 强制规定列数据类型

读数据的时候使用converters指定列数据的数值类型 pd.read_excel('a.xlsx',converters={0: str})

pandas默认将文本类的数据读取为整型),主要用途:保留以文本形式存储的数字

三、常用操作

1.找到指定的一列,并在这一列中进行比较

data['gender'][data['gender'] == 'male'] = 0
data['gender'][data['gender'] == 'female'] = 1

2.保存

pd.DataFrame(data).to_excel(path, sheet_name='Sheet1', index=False, header=True)

3.新增列数据

data['列名称'] = None
# 值为None(默认值)时,只有列名,没有数据
data['profession'] = None

4.新增行数据

# 这里的N为excel自动给行加的序号
data.loc[N] = [值1, 值2, ...]
# 比如我在第5行新增
data.loc[5] = ['James', 32, 'male']

5.删除一列或者删除一行

# 删除gender列,需要指定axis为1,当删除行时,axis为0
data = data.drop('gender', axis=1) # 删除第3,4行,这里下表以0开始,并且标题行不算在类
data = data.drop([2, 3], axis=0)

6.遍历指定列的所有行

data = pd.read_excel(path,sheet_name="sheet1")
for i in data['列名']:
print(i)
print(i,type(i)) # type(i) 数据类型,这里的i为字符串
print(i.split(' ')) # 字符串转列表
values=pd.DataFrame(i.split(' '), columns=['新增车组名']) # 列表转DataFrame
print(values)

7.自动填充、排序、计算、数据过滤、筛选

https://blog.csdn.net/u013089490/article/details/91422685

pandas读取xlsx的更多相关文章

  1. 深入理解pandas读取excel,txt,csv文件等命令

    pandas读取文件官方提供的文档 在使用pandas读取文件之前,必备的内容,必然属于官方文档,官方文档查阅地址 http://pandas.pydata.org/pandas-docs/versi ...

  2. 人工智能-机器学习之seaborn(读取xlsx文件,小提琴图)

    我们不止可以读取数据库的内容,还可以读取xlsx文件的内容,这个库有在有些情况还是挺实用的 首先我们想读取这个文件的时候必须得现有个seaborn库 下载命令就是: pip install  seab ...

  3. Python 使用Pandas读取Excel的学习笔记

    这里介绍Python中使用Pandas读取Excel的方法 一.软件环境: OS:Win7 64位 Python 3.7 二.文件准备 1.项目结构: 2.在当前实验文件夹下建立一个Source文件夹 ...

  4. 机器学习之数据预处理,Pandas读取excel数据

    Python读写excel的工具库很多,比如最耳熟能详的xlrd.xlwt,xlutils,openpyxl等.其中xlrd和xlwt库通常配合使用,一个用于读,一个用于写excel.xlutils结 ...

  5. [译]使用Pandas读取大型Excel文件

    上周我参加了dataisbeautiful subreddit上的Dataviz Battle,我们不得不从TSA声明数据集创建可视化.我喜欢这种比赛,因为大多数时候你最终都会学习很多有用的东西. 这 ...

  6. Pandas 读取超过 65536 行的 Excel 文件

    Excel 文件的格式曾经发生过一次变化,在 Excel 2007 以前,使用扩展名为 .xls 格式的文件,这种文件格式是一种特定的二进制格式,最多支持 65,536 行,256 列表格.从 Exc ...

  7. 使用pandas读取excel

    使用pandas读取excel Excel是微软的经典之作,在这里我们介绍使用Python的pandas数据分析包来解决此问题. pd.read_excel(io, sheet_name = 0, h ...

  8. pandas读取各类sql数据源

    大数据分析中,我们经常需要使用pandas工具读取各类数据源并将结果保存到数据库中. 本文总结了一些读取和写入常用数据库数据的一些方法,包括mysql,oracle,impala等. 其中读取数据库数 ...

  9. Unity NPOI 无法读取xlsx

    遇到问题 在做编辑器开发时,需要在Unity Editor下直接读取Excel源文件,首先想到的是通过npoi去读取,但是遇到无法读取xlsx格式,只能读取xls格式的问题. 我的环境 unity 2 ...

随机推荐

  1. Sed的查,删,增,改

    sed的查,删,增,改 1.sed的查找 2.sed的删除 3.sed的上下左右增加文件内容 4.sed的改

  2. ubtuntu下虚拟环境搭建【python】

    为什么要搭建虚拟环境? 在开发过程中, 当需要使用python的某些工具包/框架时需要联网安装 比如联网安装Flask框架flask-0.10.1版本 sudo pip install flask== ...

  3. nodejs 进阶:图片裁剪

    demo 图片: 效果: var fs = require('fs'); var gm = require('gm'); gm("./不饿.jpg").crop(100,100,2 ...

  4. Python模块和模块引用(一)

    """ import my_module as mm courses = ['History','Math','Physics','CompSci'] index = m ...

  5. vs code 自定义代码片段

    1.快捷键Ctrl+Shift+P打开命令输入 snippet : (也可以点击文件=>首选项=>用户代码片段) 2.选择代码语言类型(这里以JavaScrpt为例) 3.在javascr ...

  6. 阿里云智能推荐AIRec产品介绍

    一.智能推荐(AIRec)简介 AIRec背景介绍 智能推荐(简称AIRec)基于阿里巴巴集团领先的大数据和人工智能技术,结合阿里巴巴在电商.内容.新闻.视频直播和社交等多个行业领域的积累,为全球企业 ...

  7. luoguP2148 [SDOI2009]E&D [sg函数][组合游戏]

    题目描述 小E 与小W 进行一项名为“E&D”游戏. 游戏的规则如下: 桌子上有2n 堆石子,编号为1..2n.其中,为了方便起见,我们将第2k-1 堆与第2k 堆 (1 ≤ k ≤ n)视为 ...

  8. [7.18NOIP模拟测试5]砍树 题解(数论分块)

    题面(加密) 又考没学的姿势……不带这么玩的…… 考场上打了个模拟 骗到30分滚粗了 稍加思考(滑稽)可将题面转化为: 求一个最大的$d$,使得 $\sum \limits _{i=1}^n {(\l ...

  9. GitHub 万星推荐:黑客成长技术清单

    GitHub 万星推荐:黑客成长技术清单 导语:如果你需要一些安全入门引导,“Awesome Hacking”无疑是最佳选择之一. 最近两天,在reddit安全板块和Twitter上有个GitHub项 ...

  10. 一个小BUG引发的思考。(论开发与测试之间的那点事)

    标题不是“一个馒头引发的血案”. 言归正传:今天上午测试的时候,发现了一个BUG,如图: 一个用肉眼就能发现的BUG.原因当然是因为开发同事没有自测试,流入到了测试人员这里了. 无非是开发同事不严谨造 ...