《用Pandas读取主流数据存储的方法.docx》由会员分享,可在线阅读,更多相关《用Pandas读取主流数据存储的方法.docx(4页珍藏版)》请在第一文库网上搜索。
1、用Pandas读取主流数据存储的方法Pandas提供了一组顶层的I/O API,如pandas, read csv()等方法,这些方法可以将众多格式的数据读取到DataFrame数据结构中,经过分析处理后,再通过类似DataFrame. to_csv()的方法导出数据。下图列出了一些常见的数据格式读取和输出方法。格式文件格式读取函数写入(输出)函数binaryExcelrcad_excelto_exccltextCSVread csv、read tableto-csvtextJSONreadjsonto J sontext网页HTML表格readhtmltohtmltext本地剪贴板read-
2、clipboardtoclipboardSQLSQL查询数据库read_sqlto_sqltextMarkdowntomarkdown输入和输出的方法如下:读取函数一般会赋值给一个变量df, df=pd. read_ ();输出函数是将变量自身进行操作并输出df. to_ () o1. CSV文件CSV (Comma-Separated Values)是用逗号分隔值的数据形式,有时也称为字符分隔值,因为分隔字符也可以不是逗号。CSV文件的一般文件扩展名为.csv,用制表符号分隔也常用.tsv作为扩展名。CSV不仅可以是一个实体文件,还可以是字符形式,以便于在网络上传输。CSV文件的读取方法如下
3、(以下代码省略了赋值操作):#文件目录pd. readies v( * data, csv* ) #如果文件与代码文件在同一目录下pd.read_csv( data/my/data.csv* )指定目录pd.read_csv( * data/my/my .data*) # CSV文件的扩展名不一定是 csvCSV文件可以存储在网络上,通过URL来访问和读取:#使用URLpd readmesv(* https:/www.gairuocom/file/data/dataset/GDP-China.csv)CSV不带数据样式,标准化较强,是最为常见的数据格式。Pandas为读取CSV数据提供了强大的
4、功能。2. ExcelExcel电子表格是微软公司开发的被广泛使用的电子数据表格软件,一般可以将它的使用分为两类。一类是文字或者信息的结构化,像排班表、工作口报、客户名单之类,以文字为主;另一类为统计报表,如学生成绩表、销售表等,以数字为核心。Pandas主要处理统计报表,当然也可以对文字信息类表格做整理,在新版本的Pandas中加入了非常强大的文本处理功能。Excel虽然易于上手,功能也很强大,但在数据分析中缺点也很明显。无法进行复杂的处理:有时Excel提供的函数和处理方法无法满足复杂逻辑。-无法支持更大的数据量:目前Excel支持的行数上限为1 048 576 (2的20次方),列数上限
5、为16 384 (2的14次方,列标签为XFD),在数据分析、机器学习操作中往往会超过这个体量。-处理方法无法复用:Excel 一般采用设定格式的公式,然后将数据再复制,但这样仍然无法对数据的处理过程进行灵活复用。-无法自动化:数据分析要经过一个数据输入、处理、分析和输出的过程,这些都是由人工来进行操作,无法实现自动化。Pandas可以读取、处理大体量的数据,通过技术手段,理论上Pandas可以处理的数据体量无限大。编程可以更加自由地实现复杂的逻辑,逻辑代码可以进行封装、重复使用并可实现自动化。最基础的读取方法如下:# 返回DataFramepd. read_excel ( * team. x
6、lsx ,) # 状认读取第一个标签页Sheetpd.read_excel(,path_to_file.xlsx*, sheet-name1 Sheet1 ) # 指定Sheet#从URL藻取pdread excel(https:/wwwgairuocom/file/data/dataset/team.xlsx1)3. JSONJ SON是互联网上非常通用的轻量级数据交换格式,是HTTP请求中数据的标准格式之一。Pandas提供的JSON读取方法在解析网络爬虫数据时,可以极大地提高效率。可如下读取JSON文件:# data, json为同目录下的一个文件pd read_j son(* data
7、.json)可以解析二个JSON字符串,以下是从HTTP服务检测到的设备信息:jdata=* HresM: M model: iPhone r browser-: Safari*/version :1604. lMrHstatusM: 200pd.read_json(jdata) ,res statusbrowserSafari200modeliPhone200version6041200Pandas还提供了 pd. json normalize(data)方法来读取半结构化的JSON数据。4. HTMLpd.read_html()函数可以接受HTML字符串、HTML文件、URL,并将HTML
8、中的table标签表格数据解析为DataFrame。如返回有多个df的列表,则可以通过索引取第几个。如果页面里只有一个表格,那么这个列表就只有一个DataFrameo此方法是Pandas提供的一个简单实用的实现爬虫功能的方法。dfs pd.read,https:/www.gairuo.eom/p/pandas-io*)dfs(0 #查看案一个df#读取网页文件,第一行为表头dfs pd.read html(data.html , t header-0)#第一列为索引一dfs = pd.read_html(ur19 index_col=0)如果一个网页表格很多,可以指定元素来获取:# iddta
9、ble,的表格,注意这里仍然可能返回多个dfsi = pd.read html(ur1r attrs=* id*: * table)# dfsl0# class=1 sortable1dfs2 pd.read html(ur19 attrsclass 1: * sortable1)常用的参数与read.csv的基本相同。5 .剪贴板剪贴板(Clipboard)是操作系统级的一个暂存数据的地方,它保存在内存中,可以在不同软件之间传递,非常方便。Pandas支持读取剪贴板中的结构化数据,这就意味着我们不用将数据保存成文件,而可以直接从网页、Excel等文件中复制,然后从操作系统的剪贴板中读取,非常
10、方便。a 1 2 3b 4 5 6c 7 8 9, , #复制上边的数据,然后直接赋值cdf = pd.read_clipboard()变量cdf就是上述文本的DataFrame结构数据。read clipboard的参数使用与read_csv完全一样。6 . SQLPandas需要引入SQLAlchemy库来支持SQL,在SQLAlchemy的支持下,它可以实现所有常见数据库类型的查询、更新等操作。Pandas连接数据库进行查询和更新的方法如下。 read sql table(table name, con, schema, ,):把数据表里的数据转换成 DataFrameo read sq
11、l query(sql, con, index col, ,):用 sql 查询数据到DataFrame 中。 read_sql (sql, con, index_col, ,):同时支持上面两个功能。 DataFrame. to_sql(self, name, con, schema,):把记录数据写到数据库里。以下是一些代码示例:# 需要安装SQLAlchemy库frcxn sqlalchemy import create engine# 创建数据库对象,SQLite内存模式一engine - create engine(* sqlite:/:memory:*)# 取出表名为data两表数据with engine.connect() as conn, conn.begin():data = pd.read_sql_table(* data * f conn)# data# 将数据写入datato sql(1data, engine)# 大量写入data.to sql(1data chunked19 engine, chunksizes1000)# 使用SQL查询pd.read sql query(* SELECT FROM data1, engine)