文档章节

pandas读取xlsx

o
 osc_8b42ara6
发布于 2019/07/23 16:43
字数 1297
阅读 22
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

一、使用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

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
XLSX读写库--EPPlus

EPPlus 是使用Open Office XML格式(xlsx)读写Excel 2007 / 2010文件的.net开发库。 EPPlus 支持: 单元格范围 单元格样式(Border, Color, Fill, Font, Number, Alignments) Charts 图片 形状...

匿名
2013/02/01
1W
2
Python数据分析工具包--Pandas

Python Data Analysis Library 或 pandas 是连接 SciPy 和 NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集...

匿名
2012/10/30
2.1W
2
Audible TTS

Audible TTS可以通过发声的方式从其他应用程序,剪贴板,或从文本文件读取文本内容。它可以从应用程序如Feedme或k9-Mail,剪贴板(使用复制和粘贴),或者MicroSD卡上的文件获取文本。它还可以在混...

匿名
2012/11/29
2.7K
0
SBook

实现基本的阅读器功能。 作者说:项目将几种技术整合在一起,做成的一步电子阅读器(木有UI和产品,界面比较粗糙)。可以读取沙盒中的小说和图片,也可以读取在线图片(SAE)。项目使用ARC。项...

匿名
2012/12/04
2K
0
Android传感器API之:磁场Magnetic Field源码与示例

Android的磁场传感器,Magnetic Field。。读取磁场的变化,通过该传感器可开发出指南针、罗盘等磁场应用。该传感器读取的数据是空间坐标系三个方向的磁场值,其数据单位为uT,即微特斯拉。 ...

DSALK
2011/11/30
2.8K
2

没有更多内容

加载失败,请刷新页面

加载更多

大数据研发学习之路--Hadoop集群搭建

阅读编译文档 准备一个hadoop源码包,我选择的hadoop版本是:hadoop-2.7.7-src.tar.gz,在hadoop-2.7.7的源码 包的根目录下有一个文档叫做BUILDING.txt,这其中说明了编译hadoop所需要的一些...

DSJ-shitou
55分钟前
8
0
OSChina 周五乱弹 —— 特么是别的公司派来的特洛伊木马吧?

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 小小编辑推荐:《我会守在这里》- 毛不易 《我会守在这里》- 毛不易 手机党少年们想听歌,请使劲儿戳(这里) @FalconChen :股市连跪了五天,...

小小编辑
56分钟前
59
2
如何在find中排除目录。命令 - How to exclude a directory in find . command

问题: I'm trying to run a find command for all JavaScript files, but how do I exclude a specific directory? 我正在尝试为所有JavaScript文件运行find命令,但是如何排除特定目录? ......

法国红酒甜
今天
73
0
《Java8实战》笔记(02):通过行为参数传递代码

本文源码 应对不断变化的需求 通过筛选苹果阐述通过行为参数传递代码 初试牛刀:筛选绿苹果 public static List<Apple> filterGreenApples(List<Apple> inventory){List<Apple> result = ......

巨輪
今天
19
0
JeeSite 4 架构特点、安全方面、为什么好、工匠精神、不忘初心

1、底层架构 以 Spring Boot 2 为基础,Maven 多项目依赖,模块分项目,松耦合,方便模块升级、增减模块。 模块化的数据库自动升级程序,当模块升级代码需要更新数据库时,自动执行对应版本 ...

ThinkGem
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部