前言:废话
之前宝宝出生,然后又忙着考试。
虽然考试很简单,但是必须要一次过,所以沉浸在两本书的海洋之中,好在天道酬勤,分别以自己满意的分数(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爬取网页信息!