Python——数据导入与准备
来源:互联网 发布:python json 字符串 编辑:程序博客网 时间:2024/05/22 13:12
数据导入与准备是进行数据挖掘等机器学习的第一要素。从各种不同的格式文件中导入数据是一件比较麻烦的事。因为文件格式多种多样,那么使用导入的方法也是有所不同。我总结了目前最常用的文件格式导入数据的一些方法,给大家参考一下。
# 从CSV文件导入数据'''步骤:1. 打开文件2.读取文件头3.读取剩余行4当发生错误时抛出异常'''import csvimport sysfilename = 'ex5.csv'data = []try: with open(filename) as f: reader = csv.reader(f) header = reader.next() 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文件中导入数据'''步骤:1. 打开文件的工作簿。2. 根据名称找到工作表。根据行数(nrows)和列数(ncols)读取单元格的内容。3. 打印出数据集合。'''import xlrdfile = 'output.xls'wb = xlrd.open_workbook(file)ws = wb.sheet_by_name("sheet1")dataset = []for r in xrange(ws.nrows): col = [] for c in range(ws.ncols): col.append(ws.cell(r, c).value) dataset.append(col)# 美化打印from pprint import pprintpprint(dataset)# 从定宽数据文件导入数据'''步骤:1.指定要读取的数据文件。2.定义数据读取的方式。3.逐行读取文件并根据格式把每一行解析成单独的数据字段。4.按单独数据字段的形式打印每一行。'''import structdatafile = 'fix-width.data'# 掩码定义为5s10s5s,表示为9个字符的字符串,跟一个10个字符的字符串,再跟一个5个字符的字符串(包括空格)。mask = '5s10s5s'results = []with open(datafile, 'r') as f: for line in f: # 用格式解析的unpack_from方法。 fields = struct.Struct(mask).unpack_from(line) results.append([field.strip() for field in fields])from pprint import pprintpprint(results)# 从制表符分隔的文件中读取数据'''制表符分隔的文件大部分是可以用CSV文件导入的方法,除了一些不正常的文件。这时就需要在切分前对特殊行的数据进行单独清理。'''from pandas import DataFramelines = []datafile = 'data_dirty.tab'with open(datafile, "r") as f: for line in f: line = line.strip().split("\t") lines.append(line) results = DataFrame(lines[1:], columns=[lines[0]])print results# 从JSON数据源导入数据'''步骤:1.指定URL读取JSON格式数据2.使用requests模块访问指定的URL,并获取内容3.读取内容并将转化为JSON格式的对象4.迭代访问JSON对象,读取每一个代码库的URL值'''import requestsurl = 'https://github.com/timeline.json'r = requests.get(url)json_obj = r.json()repos = set()for entry in json_obj: print entry try: repos.add(entry['repository']['url']) except KeyError as e: print "No key %s Skipping..." % (e)from pprint import pprintpprint(repos)# 从HTML中导入数据from lxml.html import parsefrom urllib2 import urlopenparsed = parse(urlopen("https://finance.yahoo.com/q/op?s=AAPL+Options"))# 找到文档中的表格,并将其导入。doc = parsed.getroot()table = doc.findall(".//table")# 然后选择一个表格做测试。put = table[1]# 对于一个表格来说,有一个标题和数据。在HTML中th单元格就表示标题行,td则表示数据行。def _unpack(row, kind="td"): elts = row.findall(".//%s" % kind) return [val.text_content() for val in elts]# 同时,在导入数据表格时,应该考虑到文本类型。我们使用pandas中的TextParser类自动类型转换。from pandas.io.parsers import TextParserdef parse_options_data(table): rows = table.findall(".//tr") header = _unpack(rows[0], kind="th") data = [_unpack(r) for r in rows[1:]] return TextParser(data, names=header).get_chunk()# 最后对这个表格调用该解析函数put_data = parse_options_data(put)print put_data[:10]# 同时,我们也可以获取文档的全部URL# 链接的标签是a。links = doc.findall(".//a")# print links[15:20]# 得到一个链接的URL和文本内容分别使用,get()和text_content()方法urls = [lnk.get("href") for lnk in links]text = [lnk.text_content() for lnk in links]from pprint import pprintpprint(urls[:10])print “============”
pprint(text[:10])
阅读全文
1 0
- Python——数据导入与准备
- Python操作Mysql数据库入门——数据导入pandas(数据分析准备)
- python数据导入与转换
- Python数据抓取(1) —数据处理前的准备
- 利用Python进行数据分析——数据导入导出
- Python安装与准备
- python——学习准备
- WEKA——数据准备
- Python数据分析-数据处理-数据导入与导出
- 基于R的数据挖掘方法与实践(1)——数据准备
- python机器学习——十次交叉验证训练的数据准备算法
- 【Python那些事儿】准备数据——训练集和测试集
- python mysql导入数据
- python数据导入
- python 数据如何导入
- python--数据导入--read_excel
- 数据库基础——数据准备
- ELM实验——数据准备
- ajax请求超时设定
- python中的filter函数
- 网络编程基础知识笔记(2)
- cs231Linear classification: Support Vector Machine, Softmax笔记
- Linux $? 返回值对照
- Python——数据导入与准备
- 使用模板快速新建工程
- 【TJOI2015】bzoj3998 弦论
- 看完让你彻底搞懂Websocket原理
- mysql中char与varchar的区别分析
- 笔试题目2(HTML+CSS+JavaScript)
- LeetCode: Remove Duplicates from Sorted Array
- POJ 1334 Two Mountaineers 笔记
- Andrew Ng机器学习公开课02:监督学习应用:梯度下降