Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据

目录

CSV

文本文件

html

XML

EXCEL

JSON

HDF5

pickle对象序列化

数据库

    SQLite

     MySQL


read_X()通常是pandas模块下的,to_X()是dataframe的方法

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第1张图片

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第2张图片

CSV

读取

使用pandas.read_csv()方法,返回的是一个dataframe

csv默认是以","分割的

csv文件内容

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第3张图片

1、read_csv()默认以第一行数据作为标题

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第4张图片

2、调用dataframe的head()方法可以返回所有行数据,若传入一个n,则返回前n行数据。默认n=5

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第5张图片

也可以使用nrows参数截取,并且是在跳行的基础上

 

3、若不希望第一行作为标题,或者在read_csv()中添加参数header=None

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第6张图片

4、自定义列名(标题)

在read_csv()中传入参数names

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第7张图片

5、跳行

上例中原标题也被读取出来了,通过参数skiprows可以跳行

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第8张图片

6、指定分隔符

通过sep参数,可以传入正则表达式

比如有如下csv文件

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第9张图片

7、分块处理大型文件

通过chunk参数可以指定每次处理的行数,返回类型为TextFileReader

TextFileReader由多个dataframe组成

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第10张图片

写入

1、将dataframe写入csv,通过to_csv()方法

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第11张图片

可以将header和index参数设置为False,不将列名和索引写入

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第12张图片

2、写入NaN

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第13张图片

将具有NaN数据的dataframe写入csv文件,此时NaN写入文件为空

若想要指定NaN写入的数据,通过na_rep参数指定

 

文本文件

读取

对于csv文件,也可以通过读取文本文件的方法来读取

1、通过dataframe.read_table(),其中传入参数sep分隔符

同样有header和skiprows参数

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第14张图片

2、指定某列为索引

原文件:

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第15张图片

通过属性index_col()传入指定列名

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第16张图片

html

html的读写只针对于python中的dataframe和网页中的表格

写入

1、将dataframe转化为html

可以通过dataframe.to_html()方法,返回的是表格的html代码

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第17张图片

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第18张图片

2、保存为html文件

将html代码写入html文件中,通过File.write()实现

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第19张图片

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第20张图片

读取

1、通过pandas.read_html()实现,返回一个dataframe的列表

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第21张图片

2、也可以读取http网址

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第22张图片

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第23张图片

XML

读取

pandas中没有提供直接读取xml文件的API,但可以借助lxml库来读取xml文件

当前有一个xml文件

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第24张图片

通过lxml库下的objectify.parse()可以解析xml文件,返回的是一个元素树类型

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第25张图片

可以通过元素树的getroot()方法获取根,即最外一层的data。此时root类型名即为最外层标签名

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第26张图片

root下有student子标签,student下有name,age,city子标签。同样标签名即为类型名

root.student是一个由两个元素的列表,通过items()可以获取标签中所有元素

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第27张图片

如果只想获取name的值,通过values()方法

比如想要访问lisi的age值

将xml转化为dataframe

根据具体xml格式确定好索引和列

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第28张图片

EXCEL

pandas支持.xls和.xlsx两种类型的excel,通过to_excel和read_excel实现了写和读。pandas内部整合了xlrd模块

读取

1、当前有一个.xlsx文件,有2个sheet

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第29张图片

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第30张图片

通过read_excel函数可以返回一个dataframe,默认读取一个sheet

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第31张图片

2、指定读取的表格,传入参数表名或者用索引表示

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第32张图片

写入

将dataframe通过to_excel()写入到excel文件中,并可以指定表名

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第33张图片

可见保存了索引和列名

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第34张图片

JSON

通过read_json()和to_json()

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第35张图片

json类型中数据通过jason格式转化可见,一列为一个字典

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第36张图片

HDF5

HDF5是二进制文件格式的一种

python中需要用Pytable来处理HDF5格式的数据。pandas提供了一个叫HDFStore的类,类似于字典,用它来借助Pytable存储dataframe对象。因此必须引入HDFStore,位于pandas.io.pytables内

写入

首先声明一个HDFStore对象,并创建HDF5文件,以.h5为后缀

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第37张图片

向.h5文件中加入这个dataframe,key值自定义,value为df。并且HDFStore对象需要flush到文件中

读取

取出dataframe,因为HDFStore类似于字典

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第38张图片

pickle对象序列化

pickle模块或cPickle模块使用的数据格式是python中特有的序列化格式,它是一种可读的序列化方式,默认使用的ASCII表达式

序列化

首先需要引入pickle模块,通过字典来装载后调用pickle.dumps()方法实现序列化

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第39张图片

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第40张图片

写入

通过to_pickle将dataframe写入到.plk文件

 读取

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第41张图片

数据库

pandas为操作数据库提供了同一的接口sqlalchemy,连接数据库使用create_engine函数,在这个函数中配置驱动器所需要的用户名密码端口和数据库实例

各种数据库的连接方法

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第42张图片

SQLite

python内置了数据库SQLite3,它的数据实际上是一个文件

写入

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第43张图片

会在当前目录下创建test.db文件

读取

read_sql函数中第一个参数指定表名

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第44张图片

MySQL

创建连接,需安装mysql-connector-python模块,test为数据库名

如果+mysqldb需要安装mysql-python模块

写入

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第45张图片

通过可视化软件可以观察到,index作为单独的一列

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第46张图片

读取

1、读取全表

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第47张图片

2、查询读取

通过read_sql_query函数可以传入一个mysql查询语句

Python:Pandas学习笔记(二)通过DataFrame读写各种类型数据_第48张图片

 

 

 

 

你可能感兴趣的:(python数据分析)