CSV模块

1、CSV文件格式

  要在文本文件中存储数据,最简单的方式是讲数据作为一系列逗号分隔的值(CSV)写入文件,这样的文件成为CSV文件,如下:

AKDT,Max TemperatureF,Mean TemperatureF,Min TemperatureF,Max Dew PointF,MeanDew PointF,Min DewpointF,Max Humidity, Mean Humidity, Min Humidity, Max Sea Level PressureIn, Mean Sea Level PressureIn, Min Sea Level PressureIn, Max VisibilityMiles, Mean VisibilityMiles, Min VisibilityMiles, Max Wind SpeedMPH, Mean Wind SpeedMPH, Max Gust SpeedMPH,PrecipitationIn, CloudCover, Events, WindDirDegrees
2014-7-1,64,56,50,53,51,48,96,83,58,30.19,30.00,29.79,10,10,10,7,4,,0.00,7,,337
2014-7-2,71,62,55,55,52,46,96,80,51,29.81,29.75,29.66,10,9,2,13,5,,0.14,7,Rain,327
2014-7-3,64,58,53,55,53,51,97,85,72,29.88,29.86,29.81,10,10,8,15,4,,0.01,6,,258
2014-7-4,59,56,52,52,51,50,96,88,75,29.91,29.89,29.87,10,9,2,9,2,,0.07,7,Rain,255
2014-7-5,69,59,50,52,50,46,96,72,49,29.88,29.82,29.79,10,10,10,13,5,,0.00,6,,110
2014-7-6,62,58,55,51,50,46,80,71,58,30.13,30.07,29.89,10,10,10,20,10,29,0.00,6,Rain,213
2014-7-7,61,57,55,56,53,51,96,87,75,30.10,30.07,30.05,10,9,4,16,4,25,0.14,8,Rain,211
2014-7-8,55,54,53,54,53,51,100,94,86,30.10,30.06,30.04,10,6,2,12,5,23,0.84,8,Rain,159
2014-7-9,57,55,53,56,54,52,100,96,83,30.24,30.18,30.11,10,7,2,9,5,,0.13,8,Rain,201
2014-7-10,61,56,53,53,52,51,100,90,75,30.23,30.17,30.03,10,8,2,8,3,,0.03,8,Rain,215
2014-7-11,57,56,54,56,54,51,100,94,84,30.02,30.00,29.98,10,5,2,12,5,,1.28,8,Rain,250
2014-7-12,59,56,55,58,56,55,100,97,93,30.18,30.06,29.99,10,6,2,15,7,26,0.32,8,Rain,275
2014-7-13,57,56,55,58,56,55,100,98,94,30.25,30.22,30.18,10,5,1,8,4,,0.29,8,Rain,291
2014-7-14,61,58,55,58,56,51,100,94,83,30.24,30.23,30.22,10,7,0,16,4,,0.01,8,Fog,307
2014-7-15,64,58,55,53,51,48,93,78,64,30.27,30.25,30.24,10,10,10,17,12,,0.00,6,,318
2014-7-16,61,56,52,51,49,47,89,76,64,30.27,30.23,30.16,10,10,10,15,6,,0.00,6,,294
2014-7-17,59,55,51,52,50,48,93,84,75,30.16,30.04,29.82,10,10,6,9,3,,0.11,7,Rain,232
2014-7-18,63,56,51,54,52,50,100,84,67,29.79,29.69,29.65,10,10,7,10,5,,0.05,6,Rain,299
2014-7-19,60,57,54,55,53,51,97,88,75,29.91,29.82,29.68,10,9,2,9,2,,0.00,8,,292
2014-7-20,57,55,52,54,52,50,94,89,77,29.92,29.87,29.78,10,8,2,13,4,,0.31,8,Rain,155
2014-7-21,69,60,52,53,51,50,97,77,52,29.99,29.88,29.78,10,10,10,13,4,,0.00,5,,297
2014-7-22,63,59,55,56,54,52,90,84,77,30.11,30.04,29.99,10,10,10,9,3,,0.00,6,Rain,240
2014-7-23,62,58,55,54,52,50,87,80,72,30.10,30.03,29.96,10,10,10,8,3,,0.00,7,,230
2014-7-24,59,57,54,54,52,51,94,84,78,29.95,29.91,29.89,10,9,3,17,4,28,0.06,8,Rain,207
2014-7-25,57,55,53,55,53,51,100,92,81,29.91,29.87,29.83,10,8,2,13,3,,0.53,8,Rain,141
2014-7-26,57,55,53,57,55,54,100,96,93,29.96,29.91,29.87,10,8,1,15,5,24,0.57,8,Rain,216
2014-7-27,61,58,55,55,54,53,100,92,78,30.10,30.05,29.97,10,9,2,13,5,,0.30,8,Rain,213
2014-7-28,59,56,53,57,54,51,97,94,90,30.06,30.00,29.96,10,8,2,9,3,,0.61,8,Rain,261
2014-7-29,61,56,51,54,52,49,96,89,75,30.13,30.02,29.95,10,9,3,14,4,,0.25,6,Rain,153
2014-7-30,61,57,54,55,53,52,97,88,78,30.31,30.23,30.14,10,10,8,8,4,,0.08,7,Rain,160
2014-7-31,66,58,50,55,52,49,100,86,65,30.31,30.29,30.26,10,9,3,10,4,,0.00,3,,217

sitka_weather_07-2014.csv

2、取CSV数据绘制气温图表

① 创建highs_lows.py读取数据第一行:

import csv

filename = 'sitka_weather_07-2014.csv'
with open(filename,'r') as f:
reader = csv.reader(f) # 生成阅读器,f对象传入
header_row = next(reader) # 查看文件第一行,reader是可迭代对象
print(header_row) # 列表格式 # ['AKDT', 'Max TemperatureF', 'Mean TemperatureF', 'Min TemperatureF',
# 'Max Dew PointF', 'MeanDew PointF', 'Min DewpointF', 'Max Humidity',
# ' Mean Humidity', ' Min Humidity', ' Max Sea Level PressureIn',
# ' Mean Sea Level PressureIn', ' Min Sea Level PressureIn',
# ' Max VisibilityMiles', ' Mean VisibilityMiles', ' Min VisibilityMiles',
# ' Max Wind SpeedMPH', ' Mean Wind SpeedMPH', ' Max Gust SpeedMPH',
# 'PrecipitationIn', ' CloudCover', ' Events', ' WindDirDegrees']

② 修改highs_lows.py文件获取每日最高温度

import csv

filename = 'sitka_weather_07-2014.csv'
with open(filename,'r') as f:
reader = csv.reader(f) # 生成阅读器,f对象传入
header_row = next(reader) # 查看文件第一行,reader是可迭代对象 highs = []
for row in reader:
high = int(row[1])
highs.append(high)
print(highs) # [64, 71, 64, 59, 69, 62, 61, 55, 57, 61, 57, 59, 57, 61,
# 64, 61, 59, 63, 60, 57, 69, 63, 62, 59, 57, 57, 61, 59, 61,61, 66]

③ 根据数据绘制气温图表

import csv
import matplotlib.pyplot as plt filename = 'sitka_weather_07-2014.csv'
with open(filename,'r') as f:
reader = csv.reader(f) # 生成阅读器,f对象传入
header_row = next(reader) # 查看文件第一行,reader是可迭代对象 highs = []
for row in reader:
high = int(row[1])
highs.append(high) # 设置图片大小
fig = plt.figure(dpi=128,figsize=(10,6))
plt.plot(highs, c='red',linewidth=1) # 设置颜色、线条粗细 # 设置图片格式
plt.title('Daily high temperatures,July 2014', fontsize=24) # 标题
plt.xlabel('', fontsize=14)
plt.ylabel('Temperature(F)', fontsize=14) plt.show() # 输出图像

绘图:

④ X轴改为时间日期

import csv
import matplotlib.pyplot as plt
from datetime import datetime filename = 'sitka_weather_07-2014.csv'
with open(filename,'r') as f:
reader = csv.reader(f) # 生成阅读器,f对象传入
header_row = next(reader) # 查看文件第一行,reader是可迭代对象 dates,highs = [],[]
for row in reader:
current_date = datetime.strptime(row[0],'%Y-%m-%d')
dates.append(current_date)
high = int(row[1])
highs.append(high) # 设置图片大小
fig = plt.figure(dpi=128,figsize=(10,6))
plt.plot(dates,highs, c='red',linewidth=1) # linewidth决定绘制线条的粗细 # 设置图片格式
plt.title('Daily high temperatures,July 2014', fontsize=20) # 标题
plt.xlabel('', fontsize=14)
fig.autofmt_xdate() # 日期标签转为斜体
plt.ylabel('Temperature(F)', fontsize=14)
plt.tick_params(axis='both',which='major')
plt.show() # 输出图像

绘图:

⑤ 添加低温数据,填充折线区域

import csv
import matplotlib.pyplot as plt
from datetime import datetime filename = 'sitka_weather_2014.csv'
with open(filename,'r') as f:
reader = csv.reader(f) # 生成阅读器,f对象传入
header_row = next(reader) # 查看文件第一行,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,6))
plt.plot(dates,highs, c='red',alpha=0.5) # 最高温度 alpha透明度0完全透明,1表示完全不透明
plt.plot(dates,lows, c='blue',alpha=0.5) # 最低温度
plt.fill_between(dates,highs,lows,facecolor='blue',alpha=0.1) #填充色 # 设置图片格式
plt.title('Daily high temperatures - 2014', fontsize=20) # 标题
plt.xlabel('', fontsize=14)
fig.autofmt_xdate() # 日期标签转为斜体
plt.ylabel('Temperature(F)', fontsize=14)
plt.tick_params(axis='both',which='major')
plt.show() # 输出图像

绘图:

Python开发【模块】:CSV文件 数据可视化的更多相关文章

  1. [Python]-pandas模块-CSV文件读写

    Pandas 即Python Data Analysis Library,是为了解决数据分析而创建的第三方工具,它不仅提供了丰富的数据模型,而且支持多种文件格式处理,包括CSV.HDF5.HTML 等 ...

  2. python之模块csv之CSV文件一次写入多行

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #CSV文件一次写入多行 import csv #csv文件,是一种常用的文本格式,用以存储表格数据,很多程序 ...

  3. python之模块csv之CSV文件的写入(基本结构)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #CSV文件的写入(基本结构) import csv #csv文件,是一种常用的文本格式,用以存储表格数据,很 ...

  4. python之模块csv之CSV文件的写入(按行写入)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #CSV文件的写入(按行写入) import csv #csv文件,是一种常用的文本格式,用以存储表格数据,很 ...

  5. Python调用matplotlib实现交互式数据可视化图表案例

    交互式的数据可视化图表是 New IT 新技术的一个应用方向,在过去,用户要在网页上查看数据,基本的实现方式就是在页面上显示一个表格出来,的而且确,用表格的方式来展示数据,显示的数据量会比较大,但是, ...

  6. python实现的电影票房数据可视化

    代码地址如下:http://www.demodashi.com/demo/14275.html 详细说明: Tushare是一个免费.开源的python财经数据接口包.主要实现对股票等金融数据从数据采 ...

  7. CSV文件数据如何读取、导入、导出到新的CSV文件中以及CSV文件的创建

    CSV文件数据如何读取.导入.导出到新的CSV文件中以及CSV文件的创建 一.csv文件的创建 (1)新建一个文本文档: 打开新建文本文档,进行编辑. 注意:关键字与关键字之间用英文半角逗号隔开.第一 ...

  8. python中操作csv文件

    python中操作csv文件 读取csv improt csv f = csv.reader(open("文件路径","r")) for i in f: pri ...

  9. java读取目录下所有csv文件数据,存入三维数组并返回

    package dwzx.com.get; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; ...

随机推荐

  1. CentOS下 Uptime 命令

    对于一些人来说系统运行了多久是无关紧要的,但是对于服务器管理员来说,这是相当重要的信息.服务器在运行重要应用的时候,必须尽量保证长时间的稳定运行,有时候甚至要求零宕机.那么我们怎么才能知道服务器运行了 ...

  2. [转]JVM运行时内存结构

    [转]http://www.cnblogs.com/dolphin0520/p/3783345.html 目录[-] 1.为什么会有年轻代 2.年轻代中的GC 3.一个对象的这一辈子 4.有关年轻代的 ...

  3. jQuery实现鼠标选中文字后弹出提示窗口效果

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  4. django-south使用 [转]

    转自: http://alexliyu.blog.163.com/blog/static/16275449620126239949478/ 使用South之前铭记:请你一定要相信他的能力,抛弃对他的不 ...

  5. meta标签整理

    meta指元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词.标签位于文档的头部,不包含任何内容. 标签的属性定义了与文档相关联的名称/值对. 一 ...

  6. Navicat for MySQL使用手记(上)--创建数据库和表

    在管理MySQL数据库的图形化工具中,最为熟知的就是phpMyAdmin和Mysql-Front了,今天跟大家分享另外一个管理mysql数据库的另外一个利器---Navicat MySQL. Navi ...

  7. error: Allowed memory size

    错误提示 error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 35 bytes) in D:\www\Th ...

  8. 静默安装oracle 11g,环境预检查时报错,SEVERE: [FATAL] PRVF-0002 : 无法检索本地节点名

    环境描述: 操作系统:Redhat 6.6_x64 oracle:11.2.0.4 x64 问题描述: 今天在安装oracle 11g的数据库,在进行预安装环境检查的时候,报下面的错误: [oracl ...

  9. 浅谈无缓存I/O操作和标准I/O文件操作差别

    首先,先略微了解系统调用的概念:        系统调用,英文名system call,每一个操作系统都在内核里有一些内建的函数库,这些函数能够用来完毕一些系统系统调用把应用程序的请求传给内核,调用对 ...

  10. 有人问thinkphp的标签解析的时候为什么出现标签内内容空格丢失

    举例如下 该代码被解析后 变为 并不是  active li bg  这里面的空格没有了 我试了多次,确实是这样,后来想了想 应该是框架解析的时候自动处理了,然后找了找框架代码 Template.cl ...