4.1 读写不同数据源的数据
- 4.1.1 读写数据库数据
- 1、数据库数据获取
- 2、数据库数据存储
- 4.1.2 读写文本文件
- 1、文本文件读取
- 2、文本文件存储
- 4.1.3 读写Excel文件
- 1、Excel文件读取
- 2、Excel文件存储
- 完整代码
4.1.1 读写数据库数据
1、数据库数据获取
pandas提供了读取与存储关系型数据库数据的函数与方法。除了pandas库外,还需要使用SQLAlchemy库建立对应的数据库连接。SQLAlchemy配合相应数据库的Python连接工具(例如MySQL数据库需要安装mysqlclient或者pymysql库),使用create_engine函数,建立一个数据库连接。
from sqlalchemy import create_engine ## 创建一个mysql连接器,
engine = create_engine('mysql+pymysql://root:123456@127.0.0.1:3306/test?charset=utf8’)
usarrest = pd.read_sql_table(‘usarrest’, con = engine) # 使用read_sql_table读取订单详情表
usarrest2 = pd.read_sql(‘select * from usarrest’, con = engine) # 使用read_sql读取订单详情表
pandas.read_sql_table(table_name, con, schema = None, index_col= None, coerce_float = True, columns = None)只能读取数据库的某一个表格,不能实现查询的操作。
pandas.read_sql_query(sql, con, index_col = None, coerce_float = True)只能实现查询操作,不能直接读取数据库中的某个表。
pandas.read_sql(sql, con, index_col = None, coerce_float = True, columns = None)是两者的综合,既能读取数据库中的某一个表,又能实现查询操作。
2、数据库数据存储
DataFrame.to_sql(name, con, if_exists = ‘fail’, index = True, index_label = None, dtype = None)
4.1.2 读写文本文件
1、文本文件读取
CSV是一种用分隔符分隔的文件格式,又被称为字符分隔文件
pandas.read_table(filepath, sep=‘\t’, header = ‘infer’, names = None, index_col = None, dtype = None, encoding = utf-8, engine = None, nrows = None)
pandas.read_csv(filepath, sep = ‘,’, header = ‘infer’, names = None, index_col = None, dtype = None, encoding=utf-8, engine=None, nrows=None)
# 文本文件读取
import pandas as pd
data1 = pd.read_table('E:/Input/info.csv')
print(data1)
data = pd.read_csv('E:/Input/info.csv')
print(data)
2、文本文件存储
文本文件的存储和读取类似,结构化数据可以通过pandas中的to_csv函数实现以csv文件格式存储文件。
DataFrame.to_csv(path_or_buf=None, sep=‘,’, na_rep=‘’, columns=None, header=True,
index=True, index_label=None, mode=‘w’, encoding=None)
# 文本文件存储
data.to_csv('E:/Output/out.csv', index=False)
4.1.3 读写Excel文件
1、Excel文件读取
pandas提供了read_excel函数来读取“xls”“xlsx”两种Excel文件
pandas.read_excel(io, sheetname=0, header=0, index_col=None, names=None, dtype=None)
# Excel文件读取
data2 = pd.read_excel('E:/Input/info_xlsx.xlsx')
print(data2.head(3))
2、Excel文件存储
将文件存储为Excel文件,可以使用to_excel方法。其语法格式如下。
DataFrame.to_excel(excel_writer=None, sheetname=‘None’, na_rep=‘’, header=True, index=True, index_label=None, mode=‘w’, encoding=None)
与to_csv方法的常用参数基本一致,区别之处在于指定存储文件的文件路径参数名称为excel_writer,并且没有sep参数,增加了一个sheetnames参数用来指定存储的Excel sheet的名称,默认为sheet1。
data2.to_excel('E:/Output/out_excel.xlsx')
完整代码
import pandas as pd
from pandas import DataFrame
# 文本文件读取
data1 = pd.read_table('E:/Input/info.csv')
print(data1.head(3)) # 打印前三行
data = pd.read_csv('E:/Input/info.csv')
print(data.head(3))
# 文本文件存储
data.to_csv('E:/Output/out.csv', index=False)
# Excel文件读取
data2 = pd.read_excel('E:/Input/info_xlsx.xlsx')
print(data2.head(3))
# Excel文件存储
data2.to_excel('E:/Output/out_excel.xlsx')