数据以两种常见格式存储:CSV
和JSON
CSV文件格式
comma-separated values
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)
# ['USW00025333', 'SITKA AIRPORT, AK US', '2018-01-01', '0.45', '', '48', '38']
for index, column_header in enumerate(header_row):
# 打印文件位置和文件头
print(index, column_header)
0 USW00025333
1 SITKA AIRPORT, AK US
2 2018-01-01
3 0.45
4
5 48
6 38
csv.reader()
:将前面存储的文件对象作为实参传递给它,创建一个与该文件相关联的阅读器对象
next()
返回文件中的下一行
第一次调用该函数,返回第一行,依次增加
enumerate()
函数可以将一个可迭代对象转换为一个枚举对象,返回的枚举对象包含每个元素的索引和对应的元素值
enumerate(iterable, start=0)
iterable
:必需,表示要枚举的可迭代对象start
:可选,表示元素索引的起始值
[‘STATION’, ‘NAME’, ‘DATE’, ‘PRCP’, ‘TAVG’, ‘TMAX’, ‘TMIN’]
STATION 记录数据的气象站的编码
NAME 气象站的名称
TMAX 最高温度 TMIN 最低温度
获取某一列的值
filename = 'sitka_weather_07-2021_simple.csv'
with open(filename) as f:
reader = csv.reader(f)
header_row = next(reader) # 该文件第一行是"STATION","NAME","DATE","TAVG","TMAX","TMIN",没有数字温度,使用next跳过改行
# 从文件中获取最高温度
highs = []
for row in reader:
high = int(row[5]) # 文件里的数据都是以字符串格式储存的
highs.append(high)
print(highs)
# [53, 52, 54, 55, 55, 54, 53, 53, 53, 51, 51, 54, 52, 51, 50, 54, 56, 57, 55, 56, 54, 55, 56, 54, 52, 49, 57, 52, 52, 60, 48]
绘制温度图表
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
font = FontProperties(fname='msyh.ttc', size=14) # 假设选择msyh字体,大小为14
# 根据最高温度绘制图形。
plt.style.use('seaborn')
fig, ax = plt.subplots()
ax.plot(highs, c='red')
# 设置图形的格式。
ax.set_title