pandas处理excel文件和csv文件
一、csv文件
csv以纯文本形式存储表格数据
pd.read_csv('文件名'),可添加参数engine='python',encoding='gbk'
一般来说,windows系统的默认编码为gbk,可在cmd窗口通过chcp查看活动页代码,936即代表gb2312。
例如我的电脑默认编码时gb2312,pycharm默认是utf-8编码,csv内存在中文时会出现错误,可通过指定engine或编码格式解决。

二、excel文件
之前博客写过通过xlrd和xlwt读写xls文件、通过openpyxl读写xlsx文件,而pandas即可处理xls文件、也可处理xlsx文件。
pandas读取的excel结果为一个DataFrame对象,因此DataFrame的许多方法都会被用到,学习DataFrame https://www.cnblogs.com/Forever77/p/11209186.html。
pd.read_excel('文件名'),默认读取文件的第一个sheet页,并将第一行当作column,添加一行从0开始的整数作为index。
常用参数sheet_name='':表示读取文件的哪个sheet页,可以为sheet页名称,也可以使用数字,0表示第一个sheet页;None会读取所有有内容的sheet页。结果为一个字典,字典的key为sheet页名称,value为sheet页内容;默认读取第一个sheet页
index_col:将哪一列当作index列,默认添加一列从0开始的整数作为index,通过指定index_col='列名'指定索引列
header:将哪一行当作表头,即DataFrame的columns,默认将sheet页的第一行当作表头,header=1则将第二行当做表头
假设有一个excel表格内容如下图1,使用pandas读取结果分别如下。
import pandas as pd
df = pd.read_excel('fruit.xlsx')
print(df)
print(df.values)
print(df['名称'])
print(df.loc[1])
print(df.loc[2,'单价/元'])


①df = pd.read_excel('fruit.xlsx'),表示通过pandas读取excel并加载为DataFrame,从图2可以看出如果读取时不设置索引,pandas会自动生成一列,该列值从0开始,表示行索引。
②图2中红框中的部分即为DataFrame的值,可通过df.values获取,结果如图3,类似列表的形式,数据类型为<class 'numpy.ndarray'>;
③图2数据部分有三列,列的名字为第一行的内容,即列索引,可通过df[列名]获取某一列的内容,结果如图4所示;
④pandas自动生成的行索引从0开始,可通过pd.loc[n]获取索引值为n的行的内容,结果如图5所示;
⑤通过pd.loc[行索引,列索引]可获取具体单元格的内容,结果如图6所示。
可通过df.set_index(列名)自行设定索引,如下示例
import pandas as pd
df = pd.read_excel('fruit.xlsx') #也可在读取时直接设置index_col='名称'
df = df.set_index('名称') #设置名称列为行索引
print(df)
print(df.values)
print(df['库存/kg'])
print(df.loc['草莓'])
print(df.loc['香蕉','单价/元'])

将DataFrame格式的数据写入excel
第一步:writer = pd.ExcelWriter('文件路径和名称'),文件名称必须指定,默认保存在当前文件的相同目录,文件名称需包含后缀名且只能为xls或xlsx
第二步:df.to_excel(writer,'sheet页名称'),sheet页参数可不指定,默认为Sheet1
第三步:writer.save()
pandas处理excel文件和csv文件的更多相关文章
- 将Excel文件转为csv文件的python脚本
#!/usr/bin/env python __author__ = "lrtao2010" ''' Excel文件转csv文件脚本 需要将该脚本直接放到要转换的Excel文件同级 ...
- Python之xlsx文件与csv文件相互转换
1 xlsx文件转csv文件 import xlrd import csv def xlsx_to_csv(): workbook = xlrd.open_workbook('1.xlsx') tab ...
- SQLite新建数据库及txt文件(CSV文件)导入
1.安装准备: Windows系统环境: 安装:SQLiteExpert 及 官网的SQLite tool 我们要用到其中的SQLite.exe 地址:https://www.sqli ...
- js操作一般文件和csv文件
js操作一般文件和csv文件 将文本文件读成字符串 <input type="file" id="upload"> document.getElem ...
- 【Github】如何下载csv文件/win10如何修改txt文件为csv文件
csv文件:逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号) 右键点击raw按钮,选择目标另存为,下载的是txt文件 win10如何 ...
- python脚本-excel批量转换为csv文件
pandas和SQL数据分析实战视频教程 https://study.163.com/course/courseMain.htm?courseId=1006383008&share=2& ...
- Python之文件读写(csv文件,CSV库,Pandas库)
前言 一.Python文件读取 二.读取CSV文件 一.Python文件读取 1. open函数是内置函数之with操作 - 关于路径设置的问题斜杠设置成D:\\文件夹\\文件或是D:/文件夹/文件 ...
- [Excel] CsvHelper---C#关于CSV文件的导入和导出以及转化 (转载)
点击下载 CsvHelper.rar 这个类是关于Csv文件的一些高级操作1.DataTable导出到CSV2.将Csv读入DataTable看下面代码吧 /// <summary> // ...
- 爬虫文件存储:txt文档,json文件,csv文件
5.1 文件存储 文件存储形式可以是多种多样的,比如可以保存成 TXT 纯文本形式,也可以保存为 Json 格式.CSV 格式等,本节我们来了解下文本文件的存储方式. 5.1.1 TXT文本存储 将数 ...
随机推荐
- webstorm 调试 typescript
{ "compilerOptions": { "target": "es5", "outFile": "bin ...
- 用JQuery解析获取JSON数据
JSON 是一种比较方便的数据形式,下面使用$.getJSON方法,实现获得JSON数据和解析,都挺方便简单的.从http://api.flickr.com/services/feeds/photos ...
- 深入理解JavaScript系列(2):揭秘命名函数表达式(转)
前言 网上还没用发现有人对命名函数表达式进去重复深入的讨论,正因为如此,网上出现了各种各样的误解,本文将从原理和实践两个方面来探讨JavaScript关于命名函数表达式的优缺点. 简 单的说,命名函数 ...
- 六.url配置
1.Django 如何处理一个请求 (1). django 加载 ROOT_URLCONF(settings.py中配置的) 指定的模块,并寻找可用的urlpatterns变量.它是 django.c ...
- js统计字符
问题: var str1 = "abcdabcabcaabeeeeeee"; var str2 = "fhjdiovjdasklgudsaklfgdaskl ...
- 11. RobotFramework内置库-Collections
Collections库是RobotFramework用来处理列表和字典的库,详细可参见官方介绍. 官方地址:http://robotframework.org/robotframework/late ...
- TJOI2013 奖学金—大根堆实现(洛谷P3963)
奖学金 题目描述 小张学院有 \(c\) 名学生,第 \(i\) 名学生的成绩为 \(ai\) ,要获得的奖学金金额为 \(bi\) . 要从这 \(c\) 名学生中挑出 \(n\) 名学生发奖学金 ...
- Redis做为缓存的几个问题
缓存理流程: 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果. 1.缓存雪崩 解决方案3:如果缓存数据库是分布 ...
- 仅需5步,轻松升级K3s集群!
Rancher 2.4是Rancher目前最新的版本,在这一版本中你可以通过Rancher UI对K3s集群进行升级管理. K3s是一个轻量级Kubernetes发行版,借助它你可以几分钟之内设置你的 ...
- html2canvas截图问题,图片跨域导致截图空白
年前的一个项目,要做一个H5截屏分享的功能,使用的是html2canvas插件,截图功能是实现了,但是跨域的图片死活不出来, 经过几天谷歌百度和不断的尝试,终于找到解决办法了,一共经历了让人心力憔悴的 ...