一:从各种不同的格式文件中导入数据,总结目前最常用的文件格式导入数据的一些方法:

# -*- coding:utf-8 -*-
from numpy import *def loadDataSet(fileName):'''导入数据'''numFeat = len(open(fileName).readline().split('\t')) - 1dataMat = []labelMat = []fr = open(fileName)for line in fr.readlines():lineArr = []curLine = line.strip().split('\t')for i in range(numFeat):lineArr.append(float(curLine[i]))dataMat.append(lineArr)labelMat.append(float(curLine[-1]))return dataMat, labelMat# def loadDataSet(fileName):
#     numFeat = len(open(fileName).readline().split('\t'))    # 计算有多少列
#     dataMat = []
#     labelMat = []
#     fr = open(fileName)
#     for line in fr.readlines():        #  遍历原始数据集每一行
#         lineArr =[]
#         curLine = line.strip().split('\t')      # 是一列表类型
#         for i in range(numFeat-1):     # numFeat - 1的原因:因为原始数据的最后一列是类别,不是属性数据
#             lineArr.append(float(curLine[i]))  # 一个一个传进lineArr列表向量
#         dataMat.append(lineArr)     # 再传进dataMat列表向量
#         labelMat.append(float(curLine[-1]))  # 写进标签列表
#     return dataMat, labelMatif __name__ == "__main__":'''线性回归'''datafile = u'E:\\learningnotes\\programing\\big data\\MLaction_master\\Ch08_LinearRegression\\ex0.txt'#datafile = 'ex0.txt'xArr, yArr = loadDataSet(datafile)#xArr, yArr = loadDataSet('ex0.txt')print('xArr= \n', yArr)print('yArr= \n',  yArr)

注意事项:
(1)该函数块主要用于从原始数据文件(.txt,.data等)读取数据,用于机器学习算法的训练和测试应用
(2)labelMat是一列表,表示标签/类别
(3)dataMat也是列表类型
(4)当原始数据文件间的数据是空格隔开,则使用.split('\t')
                       若是逗号隔开,则使用.split(',')

二:其他总结

# 从CSV文件导入数据
'''
步骤:
1. 打开文件
2.读取文件头
3.读取剩余行
4当发生错误时抛出异常
'''import csv
import sys
filename = '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 headerprint "=========="
for datarow in data:print datarow# 从Excel文件中导入数据
'''
步骤:
1. 打开文件的工作簿。
2. 根据名称找到工作表。根据行数(nrows)和列数(ncols)读取单元格的内容。
3. 打印出数据集合。
'''
import xlrd
file = '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 pprint
pprint(dataset)# 从定宽数据文件导入数据
'''
步骤:
1.指定要读取的数据文件。
2.定义数据读取的方式。
3.逐行读取文件并根据格式把每一行解析成单独的数据字段。
4.按单独数据字段的形式打印每一行。
'''
import struct
datafile = '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 pprint
pprint(results)# 从制表符分隔的文件中读取数据
'''
制表符分隔的文件大部分是可以用CSV文件导入的方法,除了一些不正常的文件。这时就需要在切分前对特殊行的数据进行单独清理。
'''from pandas import DataFrame
lines = []
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 requests
url = 'https://github.com/timeline.json'
r = requests.get(url)
json_obj = r.json()
repos = set()
for entry in json_obj:print entrytry:repos.add(entry['repository']['url'])except KeyError as e:print "No key %s Skipping..." % (e)
from pprint import pprint
pprint(repos)# 从HTML中导入数据
from lxml.html import parse
from urllib2 import urlopen
parsed = 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 TextParser
def 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 pprint
pprint(urls[:10])
print “============”
pprint(text[:10])

三:实际案例导入代码

# -*- coding:utf-8 -*-
sklearn.model_selection import train_test_splitimport pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pandas import DataFrame,Series
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression#读取文件
datafile = u'E:\\learningnotes\\PycharmProjects\\untitled\\data_mining\\input\\datadata.xls'#文件所在位置,u为防止路径中有中文名称,此处没有,可以省略
data = pd.read_excel(datafile)#datafile是excel文件,所以用read_excel,如果是csv文件则用read_csv
examDf = DataFrame(data)
print('examDf=\n',examDf.head())
print('data=\n',data)

四:实际案例代码

# -*- coding:utf-8 -*-
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns#1获取数据
#1.1 数据来源二:导入文件数据
path = "../input/"
train = pd.read_csv(path+"train.csv")
train.columns=['q','w','e','r','label']
test = pd.read_csv(path+"data_iris_test.csv", header=-1) #header=-1为增加列名序号
test.columns=['q','w','e','r'] #列名修改
print("数据来源二:train集显示前十个--->\n",train.head(10))#显示前十个
print("test集显示前十个--->\n",test.head(10))
print("train集常用计算值描述--->\n",train.describe()) #描述#1.2 数据来源一:导入sklearn里面的例子数据集
def load_data_iris():from sklearn import datasetsiris=datasets.load_iris()#导入分类算法花数据集(load_boston()波士顿房价回归集;load_digits()手写数字分类集)x=iris.data #获取特征向量y=iris.target #获取样本label'''#查看数据集长什么样:print("数据来源一:iris--->\n",iris)print("x--->\n",x)print("y--->\n",y)print("iris.target_names--->\n",iris.target_names)print("DESCR--->\n",iris.DESCR)input()'''
#1.3 数据来源三:sklearn.datasets创建数据
def load_data_datasets():from sklearn.datasets.samples_generator import make_classificationX,Y=make_classification(n_samples=6,n_features=5,n_informative=2,n_redundant=2,n_classes=2,n_clusters_per_class=2,scale=1.0,random_state=20)'''#n_samples:制定样本数#n_features:指定特征数#n_classes:指定几分类#random_state:随机种子,使得随机状可重for x_,y_ in zip(X,Y):print("数据来源三:y_:\n",y_)print("数据来源三:x_:\n",x_)input()'''

Python数据导入相关推荐

  1. python数据导入之导入各类文件方法

    ​ python数据导入之导入各类文件方法 01.csv的导入方法 1.如果数据是很规范的那种的话,而且文件不算太大的话,可以用以下代码导入即可: import pandas as pd csv_da ...

  2. python数据导入mysql

    在通过python将数据导入mysql时有如下步骤: 1.首先python连接mysql:导入pymysql模块,创建连接(pymysql.connect(host="服务器地址" ...

  3. python数据导入与清洗_Python学习之 数据清洗之增删改查

    数据准备 工具包导入及工作路径设置: 数据导入: 为了方便读者实操,这里附上原表:jingdian1.csv 增 增加列 增加列的方法有多种,这里列举两种. 增加"评级"列,lev ...

  4. python 数据导入mysql_用python批量向数据库(MySQL)中导入数据

    用python批量向数据库(MySQL)中导入数据 现有数十万条数据,如下的经过打乱处理过的数据进行导入 数据库内部的表格的数据格式如下与下面的表格结构相同Current database: pyth ...

  5. python数据导入hive_Python操作HIve,将数据插入到Mysql

    Python操作HIve,将数据插入到Mysql import sys from hive_service import ThriftHive from hive_service.ttypes imp ...

  6. python数据导入spss_关于多元线性回归分析——PythonSPSS

    原始数据在这里 1.观察数据 首先,用Pandas打开数据,并进行观察. import numpy import pandas as pd import matplotlib.pyplot as pl ...

  7. python数据导入一个列表_Python基础数据类型list 列表

    列表list [] 列表的格式 lst_l = [1,'123',[1,'www',2],'包青天'] 列表也有索引 print(lst_l[0]) print([-1][0:2])#包青 切片#切片 ...

  8. python怎么导入sql数据库,##使用python将excel表中数据导入sql server数据库

    如何用python将excel数据导入到postgresql数据库中 把excel表格另存为csv文件 python将exce文件含有多个sheet同时l导入sqlserver数据库 需要使用xlrd ...

  9. Python:数据导入、爬虫:csv,excel,sql,html,txt

    ''' 来源:天善智能韦玮老师课堂笔记 作者:Dust 数据导入 ·导入csv数据csv是一种常见的数据存储格式,基本上我们遇到的数据都可以转为这种存储格式.在Python数据分析中,我们可以使用pa ...

最新文章

  1. 智慧工地-基于深度学习yolov3的安全帽检测以及安全帽检测数据集(1)
  2. 重新定义 AI 服务器架构
  3. First update-【计算机方面的权威外文数据库(全)】
  4. C 语言高效编程与代码优化
  5. InnoDB的行锁和表锁
  6. 搭建nagios监控服务
  7. 声速的测量的实验原理和应用_声速的测定实验报告心得体会
  8. POJ 3613 Cow Relays (floyd + 矩阵高速幂)
  9. 用stack处理中缀表达式【+、-、*、/、()】
  10. Linux下patch打补丁命令
  11. 一次debug过程描述
  12. win7 ASP.NET 2.0 部署
  13. 9000个网站、APP、社交网站真实用户头像打包
  14. ae合成设置快捷键_AE脚本使用快捷键控制关键帧操作 Keyboard v1.2.1 + 使用教程【资源分享1081】...
  15. java计算同比和环比
  16. 关于VSCode编码:自动猜测编码字符集
  17. nodemon:运行提示错误:无法加载文件 xxxx
  18. PGSQL学习——触发器
  19. swing打地鼠游戏_经典街机游戏中的那些奖励关,为了得高分每次都被游戏厅老板吼...
  20. PCL学习笔记(二):PCL官方教程学习

热门文章

  1. 一个三本学生的面试之旅
  2. 4g dtu无线透明通讯模块传输RS232/485手机APP全网通CAT1
  3. 解决谷歌浏览器自动填充变色问题
  4. 微信小程序 | 自动定时结束录制
  5. Pytorch dataloader中的num_workers (选择最合适的num_workers值)
  6. 支付宝小程序H5域名配置
  7. 24个希腊字母 大小写 读音
  8. 35岁程序员:被大厂裁员后,我赚到手的却是这样:
  9. 关于“档案大数据”的非主流看法
  10. ` 这个符号叫什么名字?怎么打出来?