1、数据加载,存储与文件格式,1,读写文本格式数据: (read_csv,read_table,read_fwf,read_clipboard,open()to_csv,to_excel,write()2, JSON数据: (两个方法:json.loads() json.dumps())3,XML和HTML:WEB信息收集(两个接口lxml.html, lxml.objectify)4,二进制数据格式(pickle函数,短期存储格式)5,使用HTML和WEB API(requests包)6,使用数据库,目录,读取文本格式数据,读取文本格式数据,pandas读取文件会自动推断数据类型,不用指定。 以
2、read_csv为例,下面是常用的几个参数: 用 names重新规定列名,用index_col指定索引,也可以将多个列组合作为层次化索引。 可以编写正则表达式规定分隔符。 用skiprows跳过某些行。 缺失数据要么没有,要么用某个标记值表示,pandas常用NA、-1.#IND、NULL等进行标记。 用na_values用来不同的NA标记值。 Nrows 只读取几行 Chunksize:逐块读取文件,定义一个字典为各个列指定NA标记值,直接=null的就是把df中所有为空值的都标为null,跳过第3行,将数据写出到文本格式,1、利用data_frame的to_csv方法,可以将数据写到一个以
3、逗号分隔的文件中,也可用sep参数指定分隔符,如 data.to_csv() 2、缺失值写入输出时会被表示为空字符串,可使用na_rep表示为别的标记值。,不添加后缀的话默认是一个file文件,data.to_csv(sys.stdout, sep=|) # 打印到屏幕 data.to_csv(sys.stdout, na_rep=NULL) # 空字符处显示为NULL data.to_csv(sys.stdout, index=False, header=False) # 禁用行和列的标签 data.to_csv(sys.stdout, cols=a, b, c) # 按照指定的顺序显示列,
4、sys.stdout就相当于print,使用之前要import,JSON数据,JSON数据已经成为通过http请求在wed浏览器和其他应用程序之间发送数据的标准格式之一,它是一种比表格型文本格式更灵活的数据格式。JSON非常接近于有效的python代码,基本类型都有对象,数组,字符串,数值,布尔型以及null。,Python形式,JSON格式,JSON格式,json.loads(),json.dumps(),Html基本信息,HTML 使用标记标签来描述网页 HTML 文档描述网页 保存为后缀名带.html打开就是一个网页 a href 超链接,XML和HTML:WEB信息收集,Python有
5、许多可以读写HTML和XML格式数据的库,lxml就是其中之一。,XML和HTML:WEB信息收集,Python有许多可以读写HTML和XML格式数据的库,lxml就是其中之一。,from lxml.html import parse from urllib.request import urlopen urllib2在python中是urllib.request from pandas.io.parsers import TextParser import pandas as pdparsed=parse(urlopen(http:/ 打开url doc=parsed.getroot() 可
6、以得到url里面所有的element print(-doc-) print (doc)links=doc.findall(./a) 获取所有为 的超链接 lnk=links3 找到其中的一个连接下面的内容 print(-lnk-) print(links3) tables=doc.findall(./table) 找到这个连接下面的所有table元素 print(-table-) print (tables) table=tables0 找到想要的table print(-calls-) print (calls)rows =table.findall(./tr) 找到table下面所有的行
7、print(-rows-) print (rows),XML和HTML:WEB信息收集,Python有许多可以读写HTML和XML格式数据的库,lxml就是其中之一。,def _unpack(row,kind=td):elts=row.findall(./%s % kind)return val.text_content().strip() for val in eltsprint(-th-) 调用函数分别打印th和一行td print(_unpack(rows0,kind=th) print() print(-td1-) print(_unpack(rows1,kind=td),text_c
8、ontent()取到每一个td下面的内容 strip() 删除前后的空格,XML和HTML:WEB信息收集,Python有许多可以读写HTML和XML格式数据的库,lxml就是其中之一。,直接用Dataframe把行和表头拼起来也行这里TextParser类可以自动转换数据类型最后用to_excel比to_csv好用,to_csv保存的时候中文不好用,使用数据库,将excel的数据导入DB中,python支持多种关系型数据库:SQL Server, MySQL,DB2等, 我是直接使用Python自带的SQLite数据库,1.导入Python SQLITE数据库模块import sqlites
9、2. 创建/打开数据库 在调用connect函数的时候,会指定库名称,如果指定的数据库存在就直接打开这个数据库,如果不存在就新创建一个再打开。con=splites.connect(:memory:)3.使用游标查询数据库 我们需要使用游标对象SQL语句查询数据库,获得查询对象。 通过以下方法来定义一个游标cursor=con.cursor()cursor.execute() #执行sql语句 cursor.executemany #执行多条sql语句 cursor.close() #关闭游标 cursor.fetchone() #从结果中取一条记录,并将游标指向下一条记录 cursor.fe
10、tchmany() #从结果中取多条记录 cursor.fetchall() #从结果中取出所有记录 cursor.scroll() #游标滚动,使用数据库,将excel的数据导入DB中,python支持多种关系型数据库:SQL Server, MySQL,DB2等, 我是直接使用Python自带的SQLite数据库,创建了一个test1表,用来存储数据,使用数据库,将excel的数据导入DB中,python支持多种关系型数据库:SQL Server, MySQL,DB2等, 我是直接使用Python自带的SQLite数据库,使用了for循环每次读取一条数据然后插入到test1表中,Thank you,