从 CSV 文件中读取数据(CSV)

import sys
import csv # python 内置该模块 支持各种CSV文件 file_name = r"..\ch02_data\ch02-data.csv" # r 指明字符串不用转义
data = [] try:
with open(file_name) as f: # 打开文件
reader = csv.reader(f) # 获取 reader 对象,通过对该对象的遍历获取文件的所有内容,默认分隔符为“,” 可以通过 dialect 指定分隔符
header = next(reader) # 读取文件头
data = [row for row in reader] # 读取文件内容,并存放到列表中
except csv.Error as e:
print("Error reading CSV file at line %s: %s" %(reader.line_num, e))
sys.exit(-1) if header:
print(header)
print("===========================") for datarow in data:
print(datarow)

读取 tab 分隔的文件(csv)

也可以通过传统的 split("\t") 来进行分隔

import csv
import sys filename = r'../ch02_data/ch02-data.tab'
data = []
try:
with open(filename) as f:
reader = csv.reader(f, dialect = csv.excel_tab) # 指定 tab 分隔符
header = next(reader)
data = [row for row in reader] # 将文件内容读入列表
except csv.Error as e:
print("Error reading CSV file at line %s: %s" % (reader.line_num, e))
sys.exit(1) if header:
print(header)
print('===================')
for datarow in data:
print(datarow)

从 Excel 中读取数据

www.python-excel.org 项目提供的软件包可以方便 python 处理 excel 文件。

该项目提供的 package 有:openpyxl  xlsxwriter  xlrd  xlwt  xlutils

安装方法:以管理员方式打开 cmd --> pip install xlrd

import xlrd  ## 专门读取 excel 的 package
# from pprint import pprint file = r"..\ch02_data\ch02-xlsxdata.xlsx"
wb = xlrd.open_workbook(filename = file) # 读取 excel 文件,返回 xlrd.book.Book 类的实例对象
ws = wb.sheet_by_name("Sheet1") # 根据 sheet name 读取 sheet 中的数据,返回 xlrd.sheet.Sheet 类的实例对象
data_set = []
for r in range(ws.nrows): # sheet 的行数
col = []
for c in range(ws.ncols): # sheet 的列数
col.append(ws.cell(r, c).value) # 获取指定的 Cell 的实例对象,通过 value 属性获取值
data_set.append(col)
# pprint(data_set)
for i in data_set:
print(i)

从定宽数据文件导入数据(struct)

import struct  # 该 module 执行 python 值和 C 结构体之间的转换,从而形成 python 字节对象

datafile = r"../ch02_data/ch02-fixed-width-1M.data"
# mask = bytes('9s15s5s', encoding = 'utf-8') # bytes 内置函数返回一个新的 bytes 对象。
mask = '9s15s5s'
with open(datafile, 'rb') as f: # 以二进制格式打开一个文件用于只读
for line in f:
fields = struct.Struct(mask).unpack_from(line) # 根据 mask 描述的格式,将 bytes 反向解析出来,返回一个元组
print('fields: ', [field.strip() for field in fields])

从数据库读写数据

import sqlite3
import sys
from builtins import str # 向数据库中写入数据
if len(sys.argv) < 2:
print("Error: You must supply at least SQL script.")
print("Usage: %s table.db ./sql-dump.sql" % (sys.argv[0]))
sys.exit(1) script_path = sys.argv[2] # sql脚本文件 if len(sys.argv)== 3:
db = sys.argv[1] # 写入的数据库文件
else:
db = ":memory:" try:
con = sqlite3.connect(db) # 返回一个 sqlite3.Connection 对象实例
with con:
cur = con.cursor() # 返回一个 sqlite3.Cursor 对象实例
with open(script_path, 'rb') as f:
cur.executescript(f.read().decode())
except sqlite3.Error as err:
print("Error occured: %s" % err) # 从数据库中读取数据
db = sys.argv[1]
try:
con = sqlite3.connect(db)
with con:
cur = con.cursor() # 得到一个游标对象,用于遍历数据库放回的结果集中的记录
query = 'SELECT ID, Name, Population FROM City ORDER BY Population DESC LIMIT 10'
con.text_factory = str # 该属性控制返回对象的数据类型
cur.execute(query) # 执行查询语句
resultset = cur.fetchall() # 获取查询结果集汇总所有的记录,返回一个列表,每个查询记录是一个元组
col_names = [cn[0] for cn in cur.description] # description 属性提供了列的描述信息,每列的描述是一个7个元素的元组
print("%10s %30s %10s" % tuple(col_names))
print("="*(10 + 1+ 30 + 1 + 10)) for row in resultset:
print("%10s %30s %10s" % row)
except sqlite3.Error as err:
print("[ERROR]: ", err)

sql 脚本文件

DROP TABLE IF EXISTS 'City';
CREATE TABLE `City` (
`ID` int(11) NOT NULL ,
`Name` char(35) NOT NULL ,
`CountryCode` char(3) NOT NULL ,
`District` char(20) NOT NULL ,
`Population` int(11) NOT NULL ,
PRIMARY KEY (`ID`)
); INSERT INTO `City` VALUES (1,'Kabul','AFG','Kabol',1780000);
INSERT INTO `City` VALUES (2,'Qandahar','AFG','Qandahar',237500);
INSERT INTO `City` VALUES (3,'Herat','AFG','Herat',186800);
INSERT INTO `City` VALUES (4,'Mazar-e-Sharif','AFG','Balkh',127800);
INSERT INTO `City` VALUES (5,'Amsterdam','NLD','Noord-Holland',731200);
INSERT INTO `City` VALUES (6,'Rotterdam','NLD','Zuid-Holland',593321);
INSERT INTO `City` VALUES (7,'Haag','NLD','Zuid-Holland',440900);
INSERT INTO `City` VALUES (8,'Utrecht','NLD','Utrecht',234323);
INSERT INTO `City` VALUES (9,'Eindhoven','NLD','Noord-Brabant',201843);
INSERT INTO `City` VALUES (10,'Tilburg','NLD','Noord-Brabant',193238);
INSERT INTO `City` VALUES (11,'Groningen','NLD','Groningen',172701);
INSERT INTO `City` VALUES (12,'Breda','NLD','Noord-Brabant',160398);
INSERT INTO `City` VALUES (13,'Apeldoorn','NLD','Gelderland',153491);
INSERT INTO `City` VALUES (14,'Nijmegen','NLD','Gelderland',152463);
INSERT INTO `City` VALUES (15,'Enschede','NLD','Overijssel',149544);

读取图片

import matplotlib.pyplot as plt
import scipy.misc bug = scipy.misc.imread('stinkbug.png') plt.figure(1)
plt.gray()
plt.imshow(bug)
plt.colorbar() plt.figure(2)
bug = bug[:,:,0]
plt.subplot(121)
plt.imshow(bug) zbug = bug[100:350, 140:350] plt.subplot(122)
plt.imshow(zbug)
plt.colorbar()
plt.show()

python 数据可视化 -- 读取数据的更多相关文章

  1. 其它课程中的python---5、Pandas处理数据和读取数据

    其它课程中的python---5.Pandas处理数据和读取数据 一.总结 一句话总结: 记常用和特例:慢慢慢慢的就熟了,不用太着急,慢慢来 库的使用都很简单:就是库的常用函数就这几个,后面用的时候学 ...

  2. 简谈python从Oracle读取数据生成图形

    初次学习python,连接Oracle数据库,导出数据到Excel,再从Excel里面读取数据进行绘图,生成png保存出来. 1.涉及到的python模块(模块安装就不进行解释了): 1 import ...

  3. Webservice WCF WebApi 前端数据可视化 前端数据可视化 C# asp.net PhoneGap html5 C# Where 网站分布式开发简介 EntityFramework Core依赖注入上下文方式不同造成内存泄漏了解一下? SQL Server之深入理解STUFF 你必须知道的EntityFramework 6.x和EntityFramework Cor

    Webservice WCF WebApi   注明:改编加组合 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下, ...

  4. 第六篇:R语言数据可视化之数据分布图(直方图、密度曲线、箱线图、等高线、2D密度图)

    数据分布图简介 中医上讲看病四诊法为:望闻问切.而数据分析师分析数据的过程也有点相似,我们需要望:看看数据长什么样:闻:仔细分析数据是否合理:问:针对前两步工作搜集到的问题与业务方交流:切:结合业务方 ...

  5. 第二篇:R语言数据可视化之数据塑形技术

    前言 绘制统计图形时,半数以上的时间会花在调用绘图命令之前的数据塑型操作上.因为在把数据送进绘图函数前,还得将数据框转换为适当格式才行. 本文将给出使用R语言进行数据塑型的一些基本的技巧,更多技术细节 ...

  6. 【visio】数据可视化 - 形状数据

    visio在对数据处理方面也是有一整套的设施,用户可以用visio存储.管理对象数据,利用数据驱动图形设计,让数据形象化,并在团队沟通的时候清晰地展示数据,沟通数据. 1.属性 每个图形都可以设置多个 ...

  7. python xlwt模块生成excel文件并写入数据 xlrd读取数据

    python中一般使用 xlwt (excel write)来生成Excel文件(可以控制单元格格式),用 xlrd 来读取Excel文件,用xlrd读取excel是不能对其进行操作的. 1.xlrd ...

  8. python 数据可视化 -- 真实数据的噪声平滑处理

    平滑数据噪声的一个简单朴素的做法是,对窗口(样本)求平均,然后仅仅绘制出给定窗口的平均值,而不是所有的数据点. import matplotlib.pyplot as plt import numpy ...

  9. POI框架实现创建Excel表、添加数据、读取数据

    public class TestPOI2Excel {//创建2003版本Excel用此方法 @Test public void testWrite03Excel() throws Exceptio ...

随机推荐

  1. w7安装双系统

    http://blog.sina.com.cn/s/blog_86e874d30101e3d8.html http://www.cnblogs.com/hust-ghtao/tag/Linux%E5% ...

  2. Batch Close process

    @echo offecho.rem Kill all chrome drivertaskkill /im chromedriver.exe /f pause

  3. 使用docker查看jvm状态,在docker中使用jmap,jstat

    Docker中查看JVM的信息: 1.     列出docker容器:docker ps 2.     标准输入和关联终端:docker exec -it 容器ID  bash 3.     查找出j ...

  4. [转]Java事件处理机制- 事件监听器的四种实现方式

    原文来自http://stefan321.iteye.com/blog/345221 自身类作为事件监听器 外部类作为事件监听器 匿名内部类作为事件监听器 内部类作为事件监听器 自身类作为事件监听器: ...

  5. 一切为了落地,为什么要把PP.io设计成三个阶段!

    之前的一篇文章,我讲解了PP.io的三个阶段:“强中心”,“弱中心”,“去中心”.今天来解释下,我为什么要分三个阶段逐步实现PP.io去中心化存储网络: 简单地说,就是在区块链不可能三角理论中,我暂时 ...

  6. 导出Excel实现 (ASP.NET C# 代码部分)

    背景: 实现导出Excel功能. 技术: ASP.NET  , 采用`Aspose.Cells`第三方组件, C# 实现通用部分. 根据前台Ext Grid完成导入Excel中文列与实际存储列的对应关 ...

  7. 团队第三次 # scrum meeting

    github 本此会议项目由PM召开,召开时间为4-7日晚上9点 召开时长15分钟 任务表格 袁勤 继续学习SpringBoot https://github.com/buaa-2016/phyweb ...

  8. Maven CXF wsdl2Java String生成JAXBElement<Xxx> 解决方法

    添加要bindingFile的jaxb配置文件,如下: <jaxb:bindings version="2.1" xmlns:jaxb="http://java.s ...

  9. android toolbar效果

    layout下的layout_main.xml: <?xml version="1.0" encoding="utf-8"?> <Relati ...

  10. C#使用GET、POST请求获取结果,这里以一个简单的用户登陆为例。

    1. 使用GET请求获取结果 1.1 创建LoginHandler.aspx处理页面 protected void Page_Load(object sender, EventArgs e) { st ...