学习csv
1.csv文件读取,csv文件是常用的数据存储格式之一,我们使用Python模块来处理csv文件,这是一个天气信息表

import csv
from matplotlib import pyplot as plt filename = 'sitka_weather_07-2014.csv'
with open(filename) as f:
#从文件获取数据
reader = csv.reader(f)
#获取数据的第一行也就是数据字段
header_row = next(reader)
#print(header_row)
#遍历读取到的第一行数据使用enumerate函数来获取每个元素的索引和值
# for index ,column_header in enumerate(header_row):
# print(index,column_header) highs=[]
#从文件获取到最高气温
for row in reader:
highs.append(int(row[1]))
print(highs)
fig = plt.figure(dpi=128, figsize=(10, 6))
plt.plot(highs, c='red', alpha=0.5)
#plt.plot(dates, lows, c='blue', alpha=0.5)
#plt.fill_between(dates, highs, lows, facecolor='blue', alpha=0.1) title = "Daily high and low temperatures CA"
plt.title(title, fontsize=20)
plt.xlabel('', fontsize=16)
fig.autofmt_xdate()
plt.ylabel("Temperature (F)", fontsize=16)
plt.tick_params(axis='both', which='major', labelsize=16) plt.show()

除了这样显示,我们还可以读取时间数据显示在x轴上,添加datetime模块
from datetime import datetime
读取时间数据
filename = 'sitka_weather_07-2014.csv'
with open(filename) as f:
#从文件获取数据
reader = csv.reader(f)
#获取数据的第一行也就是数据字段
header_row = next(reader)
#print(header_row)
#遍历读取到的第一行数据使用enumerate函数来获取每个元素的索引和值
# for index ,column_header in enumerate(header_row):
# print(index,column_header) highs,dates=[],[]
#从文件获取到最高气温
for row in reader:
#从文件获取日期
current_date=datetime.strptime(row[0],"%Y-%m-%d")
dates.append(current_date)
highs.append(int(row[1]))
print(highs,dates)
fig = plt.figure(dpi=128, figsize=(5, 4))
#添加日期
plt.plot(dates,highs, c='red', alpha=0.5)

图中是一个月的天气温度情况
当然还可以读取整年的天气情况,只要有足够的数据
2.绘制一个数据系列,对比全年每个月的最高气温和最低气温
import csv
from datetime import datetime from matplotlib import pyplot as plt filename = 'death_valley_2014.csv'
with open(filename) as f:
reader = csv.reader(f)
header_row = next(reader) dates, highs, lows = [], [], []
for row in reader:
#判断是否有时间信息
try:
current_date = datetime.strptime(row[0], "%Y-%m-%d")
high = int(row[1])
#读取最低温数据
low = int(row[3])
except ValueError:
print(current_date, 'missing data')
else:
dates.append(current_date)
highs.append(high)
lows.append(low) #绘制图表.
fig = plt.figure(dpi=128, figsize=(10, 9))
plt.plot(dates, highs, c='red', alpha=0.5)
plt.plot(dates, lows, c='blue', alpha=0.5)
#facecolor指定了填充区域的颜色
plt.fill_between(dates, highs, lows, facecolor='blue', alpha=0.1) title = "Daily high and low temperatures CA"
plt.title(title, fontsize=10)
plt.xlabel('', fontsize=6)
fig.autofmt_xdate()
plt.ylabel("Temperature (F)", fontsize=6)
plt.tick_params(axis='both', which='major', labelsize=6) plt.show()

学习csv的更多相关文章
- R语言之词云:wordcloud&wordcloud2安装及参数说明
一.wordcloud安装说明 install.packages("wordcloud"); 二.wordcloud2安装说明 install.packages("dev ...
- 实例学习——爬取豆瓣网TOP250数据
开发环境:(Windows)eclipse+pydev 网址:https://book.douban.com/top250?start=0 from lxml import etree #解析提取数据 ...
- JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置
众所周知,在进行接口测试的过程中,需要创建不同的场景(不同条件的输入,来验证不同的入参的返回结果).因而,在日常的自动化接口监控或商品监控等线上监控过程中,需要配置大量的入参来监控接口的返回是否正确. ...
- 学习 MySQL中导入 导出CSV
学习 MySQL中导入 导出CSV http://blog.csdn.net/sara_yhl/article/details/6850107 速度是很快的 导出 select * from t ...
- HttpRunner学习7--引用CSV文件数据
前言 在之前的文章中,我们已经学习了 parameters 参数化,是在测试脚本中直接指定参数列表.这种方法简单易用,但如果我们的参数列表数据比较多,这种方法可能就不太适合了. 当数据量比较大的时候, ...
- python3 xlwt,csv学习
前言 对于抓取一些站点分析然后指纹识别的时候可能用到到它.所以学习下.这里就记录一些最基本的感觉有用的. xlwt 基本创建 demo: #coding=utf- import xlwt yunyin ...
- JMeter学习-027-JMeter参数文件(脚本分发)路径问题:jmeter.threads.JMeterThread: Test failed! java.lang.IllegalArgumentException: File distributed.csv must exist and be readable解决方法
前些天,在进行分布式参数化测试的时候,出现了如题所示的错误报错信息.此文,针对此做一个简略的重现及分析说明. JMX脚本线程组参数配置如下所示: 参数文件路径配置如下所示: 执行JMX脚本后,服务器对 ...
- salesforce 零基础学习(二十四)解析csv格式内容
salesforce中支持对csv格式的内容批量导入,可以使用dataloader,然而有些情况下,当用户没有相关权限使用dataloader导入情况下,就的需要使用VF和apex代码来搞定. 基本想 ...
- 每日学习心得:Linq解决DataTable按照某一列的值排序问题/DataTable 导出CSV文件/巧用text-overflow解决数据绑定列数据展示过长问题
2013-8-5 1 Linq解决DataTable按照某一列的值排序 在之前的总结中提到过对拼接而成的复合的DataTable按照某一列值的大小排序,那个主要的思想是在新建表结构时将要排序的那一列的 ...
随机推荐
- OC中APPDelegate[[UIApplication shareApplication]delegate]]Swift实现
直接上代码: var myDelegate:AppDelegate? myDelegate = UIApplication.sharedApplication().delegate as? AppDe ...
- android自己定义之 5.0 风格progressBar
近期做项目,用到了ProgressBar .就想到了要使用Android5.0 的效果,就随手实现了一下. 效果图: 大概的思路: 1. 圆圈通过Canvas去绘制 2.圆圈的动画通过Animator ...
- 线段树+离散化 IP地址段检查 SEGMENT TREE
Problem: Give a series of IP segments, for example, [0.0.0.1-0.0.0.3], [123.234.232.21-123.245.21.1] ...
- 1159--Palindrome(dp:回文串变形2)
Palindrome Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 53431 Accepted: 18454 Desc ...
- js 得到 radiobuttonlist和CheckBoxList 选中值
js 得到 radiobuttonlist和CheckBoxList 选中值 得到radiobuttonlist 选中值:var CheckBoxList=document.all.optButton ...
- P3178 [HAOI2015]树上操作 树链剖分
这个题就是一道树链剖分的裸题,但是需要有一个魔性操作___编号数组需要开longlong!!!震惊!真的神奇. 题干: 题目描述 有一棵点数为 N 的树,以点 为根,且树点有边权.然后有 M 个操作, ...
- JZOJ 1667 ( bzoj 1801 ) [ AHOI 2009 ] 中国象棋 —— DP
题目:https://jzoj.net/senior/#main/show/1667 首先,一行.一列最多只有 2 个炮: 所以记录一下之前有多少行有 0/1/2 个炮,转移即可: 注意取模!小心在某 ...
- poj3421 X-factor Chains——分解质因数
题目:http://poj.org/problem?id=3421 好久没有独立A题了...做点水题还是有助于提升自信心的: 这题就是把 x 质因数分解,质因数指数的和 sum 就是最长的长度,因为每 ...
- 如何根据configure.ac和Makefile.am为开源代码产生当前平台的Makefile
1 2 3 4 5 6 7 8 9 //根据configure.in和Makefile.am生成makefile的步骤,基于UBUNTU 12.04 1.autoscan (可选) 2.aclocal ...
- openStack Packages yum upgrade
依赖关系解决 ============================================================================================= ...