read_X()通常是pandas模块下的,to_X()是dataframe的方法
CSV
读取
使用pandas.read_csv()方法,返回的是一个dataframe
csv默认是以","分割的
csv文件内容
1、read_csv()默认以第一行数据作为标题
2、调用dataframe的head()方法可以返回所有行数据,若传入一个n,则返回前n行数据。默认n=5
也可以使用nrows参数截取,并且是在跳行的基础上
3、若不希望第一行作为标题,或者在read_csv()中添加参数header=None
4、自定义列名(标题)
在read_csv()中传入参数names
5、跳行
上例中原标题也被读取出来了,通过参数skiprows可以跳行
6、指定分隔符
通过sep参数,可以传入正则表达式
比如有如下csv文件
7、分块处理大型文件
通过chunk参数可以指定每次处理的行数,返回类型为TextFileReader
TextFileReader由多个dataframe组成
写入
1、将dataframe写入csv,通过to_csv()方法
可以将header和index参数设置为False,不将列名和索引写入
2、写入NaN
将具有NaN数据的dataframe写入csv文件,此时NaN写入文件为空
若想要指定NaN写入的数据,通过na_rep参数指定
文本文件
读取
对于csv文件,也可以通过读取文本文件的方法来读取
1、通过dataframe.read_table(),其中传入参数sep分隔符
同样有header和skiprows参数
2、指定某列为索引
原文件:
通过属性index_col()传入指定列名
html
html的读写只针对于python中的dataframe和网页中的表格
写入
1、将dataframe转化为html
可以通过dataframe.to_html()方法,返回的是表格的html代码
2、保存为html文件
将html代码写入html文件中,通过File.write()实现
读取
1、通过pandas.read_html()实现,返回一个dataframe的列表
2、也可以读取http网址
XML
读取
pandas中没有提供直接读取xml文件的API,但可以借助lxml库来读取xml文件
当前有一个xml文件
通过lxml库下的objectify.parse()可以解析xml文件,返回的是一个元素树类型
可以通过元素树的getroot()方法获取根,即最外一层的data。此时root类型名即为最外层标签名
root下有student子标签,student下有name,age,city子标签。同样标签名即为类型名
root.student是一个由两个元素的列表,通过items()可以获取标签中所有元素
如果只想获取name的值,通过values()方法
比如想要访问lisi的age值
将xml转化为dataframe
根据具体xml格式确定好索引和列
EXCEL
pandas支持.xls和.xlsx两种类型的excel,通过to_excel和read_excel实现了写和读。pandas内部整合了xlrd模块
读取
1、当前有一个.xlsx文件,有2个sheet
通过read_excel函数可以返回一个dataframe,默认读取一个sheet
2、指定读取的表格,传入参数表名或者用索引表示
写入
将dataframe通过to_excel()写入到excel文件中,并可以指定表名
可见保存了索引和列名
JSON
通过read_json()和to_json()
json类型中数据通过jason格式转化可见,一列为一个字典
HDF5
HDF5是二进制文件格式的一种
python中需要用Pytable来处理HDF5格式的数据。pandas提供了一个叫HDFStore的类,类似于字典,用它来借助Pytable存储dataframe对象。因此必须引入HDFStore,位于pandas.io.pytables内
写入
首先声明一个HDFStore对象,并创建HDF5文件,以.h5为后缀
向.h5文件中加入这个dataframe,key值自定义,value为df。并且HDFStore对象需要flush到文件中
读取
取出dataframe,因为HDFStore类似于字典
pickle对象序列化
pickle模块或cPickle模块使用的数据格式是python中特有的序列化格式,它是一种可读的序列化方式,默认使用的ASCII表达式
序列化
首先需要引入pickle模块,通过字典来装载后调用pickle.dumps()方法实现序列化
写入
通过to_pickle将dataframe写入到.plk文件
读取
数据库
pandas为操作数据库提供了同一的接口sqlalchemy,连接数据库使用create_engine函数,在这个函数中配置驱动器所需要的用户名密码端口和数据库实例
各种数据库的连接方法
SQLite
python内置了数据库SQLite3,它的数据实际上是一个文件
写入
会在当前目录下创建test.db文件
读取
read_sql函数中第一个参数指定表名
MySQL
创建连接,需安装mysql-connector-python模块,test为数据库名
如果+mysqldb需要安装mysql-python模块
写入
通过可视化软件可以观察到,index作为单独的一列
读取
1、读取全表
2、查询读取
通过read_sql_query函数可以传入一个mysql查询语句