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

pandas读写各种类型数据_数据

pandas读写各种类型数据_数据_02

CSV

读取

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

csv默认是以","分割的

csv文件内容

pandas读写各种类型数据_数据_03

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

pandas读写各种类型数据_html_04

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

pandas读写各种类型数据_数据_05

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

pandas读写各种类型数据_数据库_06

 

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

pandas读写各种类型数据_数据_07

4、自定义列名(标题)

在read_csv()中传入参数names

pandas读写各种类型数据_html_08

5、跳行

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

pandas读写各种类型数据_数据_09

6、指定分隔符

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

比如有如下csv文件

pandas读写各种类型数据_html_10

pandas读写各种类型数据_html_11

7、分块处理大型文件

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

pandas读写各种类型数据_数据库_12

TextFileReader由多个dataframe组成

pandas读写各种类型数据_数据_13

写入

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

pandas读写各种类型数据_数据库_14

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

pandas读写各种类型数据_数据_15

pandas读写各种类型数据_数据_16

pandas读写各种类型数据_html_17

2、写入NaN

pandas读写各种类型数据_html_18

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

pandas读写各种类型数据_数据库_19

pandas读写各种类型数据_数据_20

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

pandas读写各种类型数据_html_21

pandas读写各种类型数据_数据库_22

 

文本文件

读取

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

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

同样有header和skiprows参数

pandas读写各种类型数据_数据库_23

2、指定某列为索引

原文件:

pandas读写各种类型数据_html_24

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

pandas读写各种类型数据_数据_25

html

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

写入

1、将dataframe转化为html

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

pandas读写各种类型数据_数据库_26

pandas读写各种类型数据_数据库_27

2、保存为html文件

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

pandas读写各种类型数据_数据_28

pandas读写各种类型数据_数据库_29

读取

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

pandas读写各种类型数据_数据_30

2、也可以读取http网址

pandas读写各种类型数据_html_31

pandas读写各种类型数据_数据_32

XML

读取

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

当前有一个xml文件

pandas读写各种类型数据_html_33

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

pandas读写各种类型数据_数据库_34

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

pandas读写各种类型数据_数据_35

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

pandas读写各种类型数据_数据库_36

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

pandas读写各种类型数据_html_37

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

pandas读写各种类型数据_数据库_38

比如想要访问lisi的age值

pandas读写各种类型数据_html_39

将xml转化为dataframe

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

pandas读写各种类型数据_html_40

EXCEL

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

读取

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

pandas读写各种类型数据_数据库_41

pandas读写各种类型数据_数据库_42

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

pandas读写各种类型数据_数据库_43

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

pandas读写各种类型数据_html_44

写入

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

pandas读写各种类型数据_数据_45

pandas读写各种类型数据_html_46

可见保存了索引和列名

pandas读写各种类型数据_数据库_47

JSON

通过read_json()和to_json()

pandas读写各种类型数据_数据_48

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

pandas读写各种类型数据_html_49

HDF5

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

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

写入

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

pandas读写各种类型数据_数据库_50

pandas读写各种类型数据_数据库_51

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

pandas读写各种类型数据_数据库_52

读取

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

pandas读写各种类型数据_数据库_53

pickle对象序列化

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

序列化

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

pandas读写各种类型数据_数据库_54

pandas读写各种类型数据_数据_55

写入

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

pandas读写各种类型数据_html_56

 读取

pandas读写各种类型数据_数据_57

数据库

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

各种数据库的连接方法

pandas读写各种类型数据_数据库_58

pandas读写各种类型数据_数据库_59

SQLite

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

写入

pandas读写各种类型数据_数据库_60

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

读取

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

pandas读写各种类型数据_html_61

MySQL

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

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

pandas读写各种类型数据_数据库_62

写入

pandas读写各种类型数据_数据库_63

pandas读写各种类型数据_数据_64

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

pandas读写各种类型数据_html_65

读取

1、读取全表

pandas读写各种类型数据_html_66

2、查询读取

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

pandas读写各种类型数据_数据库_67