csv 逗号分隔值文件格式,其文件以纯文本形式存储表格数据(数字和文本)。
CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。建议使用WORDPAD或是记事本(NOTE)来开启,再则先另存新档后用EXCEL开启,也是方法之一。 ------摘自百度百科
首先,我们打开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文件中提取信息,并且对需要的数据进行可视化。