栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python编程从入门到实践 第16章 下载数据

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python编程从入门到实践 第16章 下载数据

16.1.1分析csv文件头
首先在教材的随书下载网站  ituring.cn/book/1861  中下载 sitka_weather_07-2014.csv,然后把这个文件放在自己编写程序的相同文件夹下,名字为highs_lows.py,内容如下:

import csv
#文件名存在 file_name 中
file_name = 'sitka_weather_07-2014.csv'
#打开这个文件
with open(file_name) as f:
    #创建一个和文件file_name 关联的阅读器(就是下面名字是 reader 的那个变量)
    reader = csv.reader(f)
    #调用next方法,返回文件的下一行
    header = next(reader)
    print(header)
~                     

16.1.2打印文件头及其位置

先看自己编写的,打印文件头和位置:

import csv
file_name = 'sitka_weather_07-2014.csv'
with open(file_name) as f:
    reader = csv.reader(f)
    header_row = next(reader)
    
    for i in range(len(header_row)):
        print(str(i)," ",header_row[i])
    

再看书上的方法(用enumerate获取每个数据的索引和值):

import csv
file_name = 'sitka_weather_07-2014.csv'
with open(file_name) as f:
    reader = csv.reader(f)
    header_row = next(reader)
    for index,column_reader in enumerate(header_row):
        print(index,column_reader)
    

16.1.3提取并读取数据

下载好数据后,把文件sitka_weather_07-2014.csv 放到和源文件同一个文件夹下:

#fun.py

#导入csv
import csv
#导入datetime
from datetime import datetime

#定义一个函数,获取最高、最低气温和日期的列表
def get_dates_highs(file_name,dates,highs,lows):
    with open(file_name) as f:
        #利用csv.reader(file_name)创建一个阅读器
        reader = csv.reader(f)
        #使阅读器指向下一行(第一行)
        next(reader)
        #从第一行下面(第二行)开始读取数据(最高气温、最低气温和日期)
        for row in reader:
            #用datetime.strptime()函数来解读一个日期
            # %Y 表示四个数字表示的年份
            #%m 数字表示的月份(01-12)
            #%d 数字表示的日(01-31)

            current_date = datetime.strptime(row[0],"%Y-%m-%d")
            high = int(row[1])
            low = int(row[3])

            dates.append(current_date)
            highs.append(high)
            lows.append(low)


#highs_and_lows.py

import matplotlib.pyplot as plt
from datetime import datetime
from fun import get_dates_highs

#定义 file_name
file_name = 'sitka_weather_07-2014.csv'

#定义三个列表,一会存储最高、最低气温和日期
highs = []
dates = []
lows = []

#调用函数get_dates_highs,获取以上三个变量的值(列表)

get_dates_highs(file_name,dates,highs,lows)

#定义图像的大小,dpi=128每英寸128像素,figsize=(10,6)表示长是10英寸,宽是6英寸
fig = plt.figure(dpi= 128,figsize=(10,6))

#画图函数,dates作为横坐标,highs作为纵坐标,颜色红色
plt.plot(dates,highs,c='red')

#话凸函数,dates作为横坐标,lows作为纵坐标,颜色蓝色
plt.plot(dates,lows,c='blue')

#可以用下面这句代码给绘图区域着色alpha代表颜色透明度,0表示完全透明,1表示完全不透明
#
#plt.fill_between(dates,highs,lows,facecolor='blue',alpha=0.3)
#fig.autofmt_xdate()绘制倾斜的日期标签,以免它们重叠
fig.autofmt_xdate()

#定义标题(图片正上方的部分的标题)
plt.title("Daily high and low temperatures,July 2014",fontsize=14)
#定义横轴的标签
plt.xlabel('',fontsize=14)
#定义纵轴的标签
plt.ylabel('Temperature (F)',fontsize=14)
#定义刻度的大小(就是数轴上那些1,2,3...的大小)
plt.tick_params(axis='both',which='major',labelsize=14)

#显示图片
plt.show()

 

 

注意:文件中读取的最高气温和最低气温都是字符串,为了让程序把他们当成整数,必须用int(),进行转换,否则画出图像后纵轴上会乱七八糟,数字不按照大小排列。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/949777.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号