数据可视化_处理CSV文件格式

作者:雷蕾
本次将使用Python模块csv来处理以CSV格式存储的天气数据,找出两个地区在一段时间内的最高温度和最低温度,然后,使用Matplotlib根据下载的数据创建图表,该图表可展示两个不同地区的温度变化。

  1. CSV文件格式
    要在文本文件中存储数据,一个简单方式就是将数据作为一系列以逗号分隔的值写入文件,这样的文件称之为CSV文件。
    例如,下面就是一行CSV格式存储的天气数据:
USC00042319,"DEATH VALLEY, CA US",2018-01-01,0,65,34,42

这是阿拉斯加州锡卡特2018年1月1日的天气数据,其中包含了当天的最高温度和最低温度以及其他数据。
1.1 分析CSV文件头
csv模块包含在python标准库中,可用于分析CSV文件中的数据行,让我们能够快速提取感兴趣的值。
在CSV文件中,第一行即文件头指出了后续各行包含的是什么样的信息:

#分析CSV文件头
import csv
filename='sitka_weather_07-2018_simple.csv'
with open(filename) as f:
    reader=csv.reader(f)
    header_row=next(reader)
    print(header_row)

示例中,首先导入了csv模块,并将csv文件名称赋给filename,接下来是打开该csv文件,并将返回的对象赋给f;
代码行reader=csv.reader(f):调用csv.reader()并将前面存储的文件对象作为实参传递给它,从而创建一个与该文件相关联的阅读器对象,这个阅读器对象被赋给了reader;

header_row=next(reader)

模块csv包含函数next(),调用它并传入阅读器对象时,它将返回文件中的下一行,示例中只调用了一次,因此得到的是csv文件中的第一行(文件头),并将返回的数据存储到header_row中,最后打印header_row。
运行代码结果展示:

['STATION', 'NAME', 'DATE', 'PRCP', 'TAVG', 'TMAX', 'TMIN']

和所讲的一样,打印的结果正是csv文件’sitka_weather_07-2018_simple.csv’所存储数据的文件头。
其中,'STATION’表示记录天气数据的气象站的编码,'NAME’表示气象站的名称,但我们最关心的应该是 ‘DATE’、‘TMAX’和’TMIN’,它们分别表示日期、最高温度和最低温度。
1.2 打印文件头及其位置
为了让数据头更加容易理解以及确定每个文件头的位置,我们可进行索引将列表中的每个文件头以及它对应的位置打印出来:

#分析CSV文件头
#打印文件头及其位置
import csv
filename='sitka_weather_07-2018_simple.csv'
with open(filename) as f:
    reader=csv.reader(f)
    header_row=next(reader)


    for index,column_header in enumerate(header_row):
        print(index,column_header)

示例中,我们添加了for循环,在该循环中,对列表header_row调用了 enumerate(),通过调用 enumerate()可获取每个元素的索引(index)及其它的值。
运行代码结果展示:

0 STATION
1 NAME
2 DATE
3 PRCP
4 TAVG
5 TMAX
6 TMIN

运行结果指出了每个文件头的索引。
1.3 提取并读取数据
知道了每个文件头的索引位置,我们可进行数据的读取:

#分析CSV文件头
#打印文件头及其位置
#提取并读取数据
import csv
filename='sitka_weather_07-2018_simple.csv'
with open(filename) as f:
    reader
  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值