java找出csv股价,近20年五粮液股价分析|CSV文件实战处理

40a569f1b582

关于装饰器基本介绍我们就讲完了,接下来我们要讲一下Python如何处理一些常见的文件数据,比如CSV文件,Excel文件,JSON和XML文件,还有就HTML文件。其实html文件的处理,涉及爬虫相关的知识(爬虫我后面会写一个入门教程),今天我们主要来学习一下CSV文件的处理

CSV文件处理

CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符

CSV是一种非常通用的文件格式,它可以非常容易地被导入各种PC表格及数据库中,也可以被excel表格打开

Python对CSV的文件处理有自己的内置模块csv,直接导入即可.一般来说掌握最常用的读和写,就可以了.

像这样:

40a569f1b582

1.读取CSV文件

1).用csv里面的reader函数

一般的csv读和写都是使用逗号做分隔符(delimiter),reader需要传入一个文件句柄,看一下示例代码:

import csv

with open('some.csv', 'rb') as f:

reader = csv.reader(f)

header=reader.next()

print header

for row in reader:

# do something with row, such as row[0],row[1]

在上面的代码中 row 会是一个元组,因此为了访问某个字段,你需要使用下标f访问,而且要注意这个返回的reader是一个迭代器,迭代器只能用next或者for循环来处理

2).我们也可以把数据读到字典中

with open('some.csv','rb') as rf:

reader=csv.DictReader(rf)

for row_dict in reader:

#print row_dict

csv里面的DictReader函数可以把文件读成字典列表,通过for循环把每一行都读出来,每一行其实都是一个字典,可以更具key,value灵活处理

2.写入CVS文件

用csv里面的writer函数就可以把内容写到一个新的csv文件, 当然writer一样也需要传入一个写文件句柄

import csv

with open('some.csv', 'wb') as f:

writer = csv.writer(f)

writer.writerows(something)

注意读写的时候最好按照二进制(b)的方式。有同学会问,为啥呢~~

因为跨平台转换的时候,有一些字符会变,特别像是/n,我们称为换行符,'0X0A',到了win平台会变成两个字符'0X0D','0X0A',所以无论读写最好都加一个b,原样读取,比较保险,可以避免一些不必要的麻烦.

实战案例

3.读取"五粮液"股票二十年的数据

雅虎网站上有一些现成的股票代码的csv,我们只需要去获取一下这些数据download下来,就可以分析了.

处理过程如下:

1).首先用urllib模块里的urlretrieve抓取五粮液股票的csv文件,并down到本地

2).然后读取文件

3).可以用next读取第一行,也就是股票文件里面的头部信息

40a569f1b582

>>

['Date', 'Open', 'High', 'Low', 'Close', 'Volume', 'Adj Close']

['2017-03-30', '43.07', '43.50', '42.17', '42.73', '20190900', '42.73']

这是一个20年的五粮液成交记录,是一个很大的csv文件

第一行是头部信息,分日期/开盘价/最高价/最低价/收盘价/成交量/已调整的收盘价

4.萃取股票成交量超过2亿元的数据,并写到新文件

获取二十年来的股票成交量超过2亿元(8个0哦,乖乖~~),然后写到一个新的CVS文件里

处理过程如下:

1).我们先从csv文件中读取

2).把头部信息取出来

3).创建一个写文件的句柄,然后创建一个写csv的句柄

4).循环处理每一行,当每一行的第6项(成交量)大于2亿元的时候,把这一行写入新的csv文件

40a569f1b582

5.获取五粮液近20年的最高价格和对应的日期

1).urllib网上下载csv文件

2).把csv文件读出来放到read_csv句柄

3).数据清洗,去掉头部,迭代器转成列表,并把日期和股票,构造出字典

4).字典循环一下,获得最高价和对应的日期

40a569f1b582

用推导列表快速生成字典,然后用max获取最高价,大家发现只要几行就能搞定,如果用java,c++要复杂很多,Python是不是非常高效~~

Python的数据分析是最最强大的地方也是我个人认为最有 魅力的地方,这里只是蜻蜓点水,真正的股票数据挖掘需要更复杂的建模,并且用神器pandas处理,再用matplotlib图形显示结果.好了Python对于CSV文件的处理就讲到这里,是不是觉得蛮好玩的,希望能给初学者一些启发,若有什么不懂的,也可以留言跟我探讨交流.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值