csv 逗号分隔值文件格式,其文件以纯文本形式存储表格数据(数字和文本)。
CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。建议使用WORDPAD或是记事本(NOTE)来开启,再则先另存新档后用EXCEL开启,也是方法之一。 ------摘自百度百科
使用python标准库的csv模板可以分析csv文件,提取有用信息。
首先,我们打开csv文件并且打印文件头(csv文件可在网上下载,本文用到的文件在ituring.cn/book/1861/)(点击打开链接右侧的随书下载)
#导入csv模块
import csv
#指定文件名,然后使用 with open() as 打开
filename = 'sitka_weather_07-2014.csv'
with open(filename) as f:
#创建一个阅读器:将f传给csv.reader
reader = csv.reader(f)
#使用csv的next函数,将reader传给next,将返回文件的下一行
header_row = next(reader)
for index, column_header in enumerate(header_row):
print(index, column_header)
运行后看到打印结果
通过阅读文件头可以了解文件包含的信息类型。
知道了这些信息后我们可以开始读取数据,先来读取最高气温(1 Max TemperatureF)
在刚刚的基础上加上这些代码(注意缩进,应该在with open 内)
#读取最高气温
#创建最高气温的列表
highs =[]
#遍历reader的余下的所有行(next读取了第一行,reader每次读取后将返回下一行)
for row in reader:
highs.append(row[1])
print(highs)
执行后将打印最高气温
从结果可以看出,我们已经成功获取了最高气温,但是是字符串形式,为了让matplotlib能够读取,我们要把它转换成数字。
#将字符串转换成数字
high = int(row[1])
highs.append(high)
输出如下
到这里,csv的数据基本已经提取完了。
接下来,可以借助matplotlib进行可视化。
添加两段代码
from matplotlib import pyplot as plt
#绘制图形
fig = plt.figure(dpi=128, figsize=(10,6))
plt.plot(highs,c='red')
#设置图形的格式
plt.title("Daily high temperature, July 2014", fontsize=24)
plt.xlabel('',fontsize=16)
plt.ylabel("Temperature(F)", fontsize=16)
plt.tick_params(axis='both', which="major", labelsize=16)
plt.show()
图形如下:
至此,我们已经完成了从csv文件中提取信息,并且对需要的数据进行可视化。