文件读取功能(Pandas读书笔记7)

前言:废话

之前宝宝出生,然后又忙着考试。

虽然考试很简单,但是必须要一次过,所以沉浸在两本书的海洋之中,好在天道酬勤,分别以自己满意的分数(87、81)通过了考试。

上周又用Python帮朋友实现网页爬虫(爬虫会在pandas后面进行分享)

所以好久木有更新,还是立两天一更的Flag吧!

一天一更有点受不了了~~~~

pandas主要有DataFrame和Series两种数据类型。

DataFrame类似于一张Excel表,Series类似于Excel中的某一列。

最初笔者想要学习和分享Pandas主要是为了解决Excel无法解决的海量数据处理问题,所以我接下来分享的重点就是如何使用Pandas解决Excel那些常见的操作!

本来想从数据的筛选排序分享起,但是考虑大家如果没有东西练手会很难受,所以我先从如何通过Pandas读写文件分享起!

本文全部练习文件及Py文件链接如下:

链接: https://pan.baidu.com/s/1RsXIKMkgV3GaMPGSzMaD4A 密码: 7swa

这样你就不用看着图片敲代码啦~

一、读取CSV文件

肯定有朋友会说,你不是刚刚说要分享Excel咩,怎么变成CSV了?

CSV本来就是和Excel是表兄弟,使用CSV更加方便快捷

我们先看看这个CSV文件里面是什么东西

这个文件其实就是我从网站上自动抓下来的期货最新的交易信息!

如何读取文件呢?其实很简单,代码如下:

绝对路径需要各位亲按照自己的文件路径改一下哈!

抓取后在Python中呈现的情况如下:

我们使用Type函数看一下df变量的类型,看到读取文件后,在pandas中就是使用DataFrame进行存储的!

敲黑板!!

其实文件读取最大的问题是如何解决原始数据错误导致无法正常读取的问题。

原谅我无法给你们一个文件进行测试,这个难题需要在工作中遇到再解决,但是其实刚刚的代码我已经给你们提供了一种解决方案~

errors='ignore'

但是实际工作中会出现部分行由于存储问题或者编码问题导致无法正常读取,接下来给大家提供更多的武器!

df= pd.read_csv(cf,keep_default_na=False, error_bad_lines=False)

其实read_csv函数后面接了很多参数,具体参数见今天的另一个文章。

二、按照分隔符读取文件

我们用TXT阅读器读取测试1的文件

我们发现测试1的不同数据之间的间隔是逗号,正常常规的CSV文件是用逗号间隔,但是如果遇到其他的比如使用空格或者竖线(|)的就比较麻烦!

我们打开一下测试2文件看一下长什么样子

那我们用之前的代码读取会怎样呢?

我们发现数据混杂在了一起,那如何将他们按照竖线分好列呢?增加一个参数即可!

df= pd.read_csv(cf,keep_default_na=False, error_bad_lines=False,sep='|')

sep后面接使用何种分隔符进行分割

三、存储文件文件

假如我们对读取的文件进行了数据清洗、整理等操作后,需要存储至新的文件,如何处理呢?

直接将原有的DataFrame变量使用.to_csv函数即可!

保存为CSV文件,r"D:\结果1.csv"

r的意思是后面接的文本没有转义字符,直接按照文本对应路径存储即可!

代码执行完就会发现对应路径有新的文件咯~

四、读写Excel文件

pandas中读取文件都是pd.read函数

读取CSV就是pd.read_csv

读取Excel就是pd.read_excel

那读取TXT文件呢?有pd.read_txt不?

NO!

读取TXT使用的是pd.read_table

我们先看一下Excel是什么样子~

这个Excel文件名字叫做测试3,有两个表,一个叫做表格1,一个叫做表格2

当我们将路径输入read_excel函数的时候,发现是可以正常读取文件的,但是读取的是Excel中第一张Sheet表的内容!

Excel和CSV最大的区别就是Excel内含有多张表,如果我们想读取任意数量的表,需要新增加一个参数!

需要读取特定表格的内容

df = pd.read_excel(xlsx, '表格2')

read_excel后面增加表格名称即可!

那如何将DataFrame数据存储至Excel中呢?

与CSV存储一样,只不过多一个参数作为表格名称而已。

就这样,至于读写TXT,我就不分享了。

pandas还可以读写HTML,但是功能很弱,后续我直接分享如何使用Python爬取网页信息!

原文发布于微信公众号 - 阿凯的Excel(akexcel)

原文发表时间:2018-04-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏更流畅、简洁的软件开发方式

【自然框架】之表单控件(一)实体类(Class)VS 字典(Dictionary)

用一个具体一点的例子来说一下,我实现单表的添加、修改的思路和方式,顺便和三层里的实体类的方式做一下对比。 一、我的拆分思想之一       简单的操作和复杂的操...

2208
来自专栏数据库

基于关系型数据库的App Inventor网络应用(3)

第三节 初识Node-RED 开发环境简介 如图8所示,整个浏览器窗口被划分为四个部分: (1) 顶部黑色通栏,左侧显示Node-RED的LOGO,右侧显著位置...

3357
来自专栏美团技术团队

Redux从设计到源码

本文主要讲述这三方面内容: Redux 背后的设计思想 源码分析以及自定义中间件 开发中的最佳实践 Redux背后的设计思想 在讲设计思想前,先简单讲下Red...

3976
来自专栏ThoughtWorks

你不知道的高性能JAVASCRIPT | TW洞见

想必大家都知道,JavaScrip是全栈开发语言,浏览器,手机,服务器端都可以看到JS的身影。 本文会分享一些高效的JavaScript的最佳实践,提高大家对...

3505
来自专栏屈定‘s Blog

Angular中引入第三方JS库

最近写http://www.itoolshub.com/的时候用到了日期时间选择器,Angular本身material2只有日期选择器,也不知道为什么官方不提供...

7853
来自专栏lestat's blog

同一页面巧妙使用多个element-ui的upload组件

4464
来自专栏我的博客

Dedecms普通模型入门教程

1. 默认模板设置 里面是default后面变量名字是cfg_df_style(在模版中使用方法是{dede:golbal.cfg_df_style/}获取的路...

3676
来自专栏听雨堂

ASP.Net Web Page深入探讨

这篇文章经典,看过之后大受启发。值得一看!看来ASP.NET跟JSP其实是一样的,本质上没区别,ASP.NET能做到的JSP一样可以做到,反之亦然。只不过ASP...

2717
来自专栏腾讯Bugly的专栏

基于 Webpack & Vue & Vue-Router 的 SPA 初体验

最近这几年的前端圈子,由于戏台一般精彩纷呈,从 MVC 到 MVVM,你刚唱罢我登场。 backbone,angularjs 已成昨日黄花,reactjs 如日...

3865
来自专栏极乐技术社区

用 RxJS、RxWX 编写微信小程序

RxJS RxJS是微软推出的ReactiveX系列,符合纯函数特点的第三方开源库有非常著名underscore和lodash,以及更加强大的RxJS。它可以用...

4258

扫码关注云+社区

领取腾讯云代金券