虽然如果你那样的话我也会全力帮你,幸好你没让我失望,这次的痛苦对你来说也许是一件好事,撑过去不但得到写轮眼,而且还能让你的意志更加的坚强。”布玛虽然也不舍得刘皓面对这样的痛苦,但现在有了这么多经历的布玛显然和龙珠时候刚刚出场十六岁时候的她完全不同。

不过因为大量的战斗的原因,基因锁突破到四阶高级,刘皓整个人甚至是灵魂都产生了蜕变,每天都在修改强化基因,导致刘皓需要的时间减少了很多,再配合战斗的压力刺激体内的潜力。

牛总管修改器免费

这一击,不论是成功还是失败,她都不可能再是天使之神,她以破碎神位为代价,爆出了远远超出自己实力的攻击。唐三仿佛真的是在面对整个太阳似的,承受着太阳真火疯狂的冲击。
放了学依旧是去找苏小暖一起吃午饭,然后对苏小暖说了今天有事情要出去一下,苏小暖想也没想便是点头答应了。

“这可不行啊,赤砂之蝎死掉了,迪达拉可是一个捕捉尾兽很不错的选择,尤其是捕捉类似三尾这样没有人柱力的体型很大的尾兽,几个黏土炸弹过去就完事了,他可不能那么快死啊。”就在此时迪达拉本体就已经快要本体扭曲空间吞噬掉的身体突然消失了,在暗处一个带着漩涡面具的男人盯着刚才迪达拉所在的方向,在迪达拉快要被吞噬的时候他使用时空忍术将迪达拉转移到其他地方。

重拾Python(5):数据读取


本文主要对Python如何读取数据进行总结梳理,涵盖从文本文件,尤其是excel文件(用于离线数据探索分析),以及结构化数据库(以Mysql为例)中读取数据等内容。

约定:

import numpy as np
import pandas as pd

1、从文本文件中读取

(1)使用Python标准库中的read、readline、readlines方法读取

a. 一般流程:
step1: 通过open方法创建一个文件对象
setp2: 通过read、readline、readlines方法读取文件内容
step3: 通过close方法关闭文件对象
b. 区别:
示例:test.txt

read方法:读取全部数据,结果为一个字符串(所有行合并为一个字符串)

#打开文件
f = open("/labcenter/python/pandas/test.txt")
#使用read方法读取文件
data1 = f.read()
print data1
type(data1)
#关闭文件
f.close()

结果:

col1    col2    col3
101 20  0.68
102 30  0.79
103 50  0.72
104 60  0.64
105 70  0.55
str

readline方法:读取一行数据,结果为一个字符串,需要seek ext等指针操作方法配合实现所有记录的遍历。

#打开文件
f = open("/labcenter/python/pandas/test.txt")
#使用readline方法读取文件
data2 = f.readline()
print data2
type(data2)
#关闭文件
f.close()

结果:

col1    col2    col3
str

readlines方法:读取全部数据,结构为一个列表(一行为列表中的一个元素)

#打开文件
f = open("/labcenter/python/pandas/test.txt")
#使用readlines方法读取文件
data3 = f.readlines()
print data3
type(data3)
for line in data3:
    print line
#关闭文件
f.close()

结果:

["col1    col2    col3
", "101 20  0.68
", "102 30  0.79
", "103 50  0.72
", "104 60  0.64
", "105 70  0.55"]
list
col1    col2    col3
101 20  0.68
102 30  0.79
103 50  0.72
104 60  0.64
105 70  0.55

c. 支持文件范围:
txtcsv sv及所有以固定分隔符分隔的文本文件。

(2)使用Numpy库中的loadtxt、load、fromfile方法读取

a. loadtxt方法
从txt文本文件中读取,返回一个数组。
np.loadtxt("/labcenter/python/pandas/test.txt",skiprows=1)
Out[413]:
array([[ 101. , 20. , 0.68],
[ 102. , 30. , 0.79],
[ 103. , 50. , 0.72],
[ 104. , 60. , 0.64],
[ 105. , 70. , 0.55]])
b. load方法
读取Numpy专用的二进制数据文件,该文件通常基于Numpy的save或savez方法生成。

write = np.array([[1,2,3,4],[5,6,7,8]])
np.save("output",write)
data = np.load("output.npy")
print data
type(data)

结果:

[[1 2 3 4]
[5 6 7 8]]
numpy.ndarray

c. fromfile方法
读取简单的文本文件和二进制文件,该文件通常基于Numpy的tofile方法生成。

write = np.array([[1,2,3,4],[5,6,7,8]])
write.tofile("output")
data = np.fromfile("output",dtype="float32")
print data
type(data)

结果:

[  1.40129846e-45   0.00000000e+00   2.80259693e-45 ...,   0.00000000e+00
   1.12103877e-44   0.00000000e+00]
numpy.ndarray

(3)使用Pandas库中的read_csv、read_table、read_excel等方法读取

a. read_csv方法
读取csv文件,返回一个DataFrame对象或TextParser对象。
示例:
test.csv

data = pd.read_csv("/labcenter/python/pandas/test.csv")
print data
type(data)

结果:

   col1  col2  col3
0   101    20  0.68
1   102    30  0.79
2   103    50  0.72
3   104    60  0.64
4   105    70  0.55
pandas.core.frame.DataFrame

b. read_table方法
读取通用分隔符分隔的文本文件,返回一个DataFrame对象或TextParser对象。

data = pd.read_table("/labcenter/python/pandas/test.csv",sep=",")
print data
type(data)

结果:

   col1  col2  col3
0   101    20  0.68
1   102    30  0.79
2   103    50  0.72
3   104    60  0.64
4   105    70  0.55
pandas.core.frame.DataFrame

c. read_excel方法
读取excel文件,返回一个DataFrame对象或TextParser对象。
示例:
test.xlsx

data = pd.read_excel("/labcenter/python/pandas/test.xlsx")
print data
type(data)

结果:

   col1  col2  col3
0   101    21  22.6
1   102    31  31.2
2   103    41  32.7
3   104    51  28.2
4   105    61  18.9
pandas.core.frame.DataFrame

d. 其他方法
read_sql方法:读取sql请求或者数据库中的表。
read_json方法:读取json文件。

(4)如何选择?

a. 选取自己最熟悉的方法。

b. 根据场景选择:
① 对纯文本、非结构化的数据:标准库的三种方法
② 对结构化、数值型,并且要用于矩阵计算、数据建模的:Numpy的loadtxt方法
③ 对于二进制数据:Numpy的load和fromfile方法
④ 对于结构化的数据,并且要用于数据探索分析的:Pandas方法

2、从Excel文件中读取

excel往往是在进行离线数据探索分析时提供的数据文件格式,因此这里单独拿出来多总结一下。

(1)使用Pandas库的read_excel方法

见上文1.3.c内容。

(2)使用其他第三方库

以xlrd库为例, xlrd模块实现对excel文件内容读取。

import xlrd
#打开一个excel文件
xlsx=xlrd.open_workbook("/labcenter/python/pandas/test.xlsx")
#读取sheet清单
sheets=xlsx.sheet_names()
sheets
#获取一个sheet数据
sheet1=xlsx.sheets()[0]
#获取指定sheet的名称
sheet1.name
#获取指定sheet的行数
sheet1.nrows
#获取指定sheet的列数
sheet1.ncols
#获取指定sheet某行的数据
sheet1.row_values(1)
#获取指定sheet某列的数据
sheet1.col_values(1)
#获取指定sheet某单元格的数据
sheet1.row(1)[2].value
sheet1.cell_value(1,2)
#逐行获取指定sheet的数据
for i in range(sheet1.nrows):
    print sheet1.row_values(i)

结果:

[u"Sheet1", u"Sheet2"]
u"Sheet1"
6
3
[101.0, 21.0, 22.6]
[u"col2", 21.0, 31.0, 41.0, 51.0, 61.0]
22.6
22.6
[u"col1", u"col2", u"col3"]
[101.0, 21.0, 22.6]
[102.0, 31.0, 31.2]
[103.0, 41.0, 32.7]
[104.0, 51.0, 28.2]
[105.0, 61.0, 18.9]


3、从结构化数据库中读取

根据数据库选择相应的库,如:mysql数据库使用MySQLdb库,oracle数据库使用cx_Oracle库,teradata数据库使用teradata库,等等。
一般流程:
step1: 建立数据库连接
step2: cursor方法获取游标
step3: execute方法执行SQL语句
step4: fetchall方法获取返回的记录
step5: close方法关闭游标
step6: close方法断开数据库连接
示例:

import MySQLdb
#建立数据库连接
conn = MySQLdb.connect("localhost", "root", "root", "testdb", charset="utf8")
#获取游标
cursor = conn.cursor()
#执行SQL语句
cursor.execute("select * from mytab1;")
#获取返回的记录
results = cursor.fetchall()
#逐行打印
for result in results:
    print result
#关闭游标
cursor.close()
#断开数据库连接
conn.close()

结果:

(1L, u"aaa")
(2L, u"bbb")
(3L, u"ccc")
(4L, u"ddd")
(5L, u"eee")

可通过命令pip install MySql-Python安装库MySQLdb。

4.参考与感谢

[1] Python数据分析与数据化运营






当前文章:http://hnhdqp.com/play/zkjzlcnf23.html

发布时间:2019-02-20 00:55:36

荣耀斗牛牛手游下载 亲朋棋牌四川自己 大满贯游戏客服 棋牌有什么好处 棋牌游戏送20万体验分 巅什么棋牌 西米来一把作弊视频 王者斗地主在哪里下载

编辑:董安

相关新闻

三本及高职录取今日启动

2019-02-20 12:18:23

达州财愿谌航天信息有限公司

特斯拉高管解读Q4财报:依然看好中国低迷的市场

2019-02-20 09:12:59

汕头了盼艘航天信息有限公司

中能煤田公司强化管理积极应对煤炭市场新形势

2019-02-20 02:20:25

西北佣伺才电子有限公司

靖边72名大学生村官正式上任

2019-02-20 00:45:48

张家界橇衔新能源有限公司

热门推荐

  • 念念不忘,必有回响?三菱汽车Evolution突然复出
  • 华为李小龙:Mate系列背后的质疑与挫败
  • 深圳交警新规:三次交通违法被查 外卖小哥将被辞退
  • 松下考虑在中国生产特斯拉电池 二者或携手在华组建超级电池厂
  • 黑科技终商用:vivo X20Plus如何成为首款屏下指纹机?
  • 苹果WWDC应用更新:适配iPhone X和iOS 11
  • 火红点科技/电磁炉燃气通用,苏泊尔26cm不粘平底锅88元
  • 从"摇篮到摇篮",铝的生命期限可以无限长
  • 美国务卿睁开欧洲离别之旅:大西洋两岸需强化关系
  • 国家减灾委发紧迫通知:全力做好应抢救灾事情
  • 河北新闻网版权所有 本站点信息未经允许不得复制或镜像 法律顾问:鸡怎么玩网页游戏 大满贯游戏
  • 送分可兑现的打鱼 copyright ? 2000 - 2016
  • 新闻热线:0311-67563366 广告热线:0311-67562966 新闻投诉:0311-67562994
  • 冀ICP备 09047539号-1 | 互联网新闻信息服务许可证编号:1312006002
  • 广播电视节目制作经营许可证(冀)字第101号|信息网络传播视听节目许可证0311618号
  • 棋牌赚钱可提现金 元游围棋怎么样 打鱼可退现金 开元棋牌三公