第四部分 数据输⼊与输出

第⼀节 csv

import numpy as np import pandas as pd
df = DataFrame(data = np.random.randint(0,50,size = [50,5]), # 薪资情况
columns=[‘IT’,’化⼯’,’⽣物’,’教师’,’⼠兵’]) # 保存到当前路径下,⽂件命名是:salary.csv。csv逗号分割值⽂件格式
df.to_csv(‘./salary.csv’,
sep = ‘;’, # ⽂本分隔符,默认是逗号
header = True,# 是否保存列索引
index = True) # 是否保存⾏索引,保存⾏索引,⽂件被加载时,默认⾏索引会作为⼀列
# 加 载
pd.read_csv(‘./salary.csv’,
sep = ‘;’,# 默认是逗号header = [0],#指定列索引index_col=0) # 指定⾏索引
pd.read_table(‘./salary.csv’, # 和read_csv类似,读取限定分隔符的⽂本⽂件
sep = ‘;’,
header = [0],#指定列索引index_col=1) # 指定⾏索引,IT作为⾏索引

第⼆节 Excel
pip install xlrd -i https://pypi.tuna.tsinghua.edu.cn/simple pip install xlwt -i https://pypi.tuna.tsinghua.edu.cn/simple

import numpy as np import pandas as pd
df1 = pd.DataFrame(data = np.random.randint(0,50,size = [50,5]), # 薪资情况
columns=[‘IT’,’化⼯’,’⽣物’,’教师’,’⼠兵’])
df2 = pd.DataFrame(data = np.random.randint(0,50,size = [150,3]),# 计算机科⽬的考试成绩
columns=[‘Python’,’Tensorflow’,’Keras’]) # 保 存 到 当 前 路 径 下 , ⽂ 件 命 名 是 :salary.xls df1.to_excel(‘./salary.xls’,
sheet_name = ‘salary’,# Excel中⼯作表的名字header = True,# 是否保存列索引
index = False) # 是否保存⾏索引,保存⾏索引
pd.read_excel(‘./salary.xls’,
sheet_name=0,# 读取哪⼀个Excel中⼯作表,默认第⼀个
header = 0,# 使⽤第⼀⾏数据作为列索引names = list(‘ABCDE’),# 替换⾏索引index_col=1)# 指定⾏索引,B作为⾏索引
# ⼀个Excel⽂件中保存多个⼯作表
with pd.ExcelWriter(‘./data.xlsx’) as writer: df1.to_excel(writer,sheet_name=’salary’,index = False) df2.to_excel(writer,sheet_name=’score’,index = False)

pd.read_excel(‘./data.xlsx’,
sheet_name=’salary’) # 读取Excel中指定名字的⼯作表

第三节 SQL
第四部分 数据输⼊与输出 - 图1pip install sqlalchemy -i https://pypi.tuna.tsinghua.edu.cn/simple pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple
数据库引擎配置

import pandas as pd
# SQLAlchemy是Python编程语⾔下的⼀款开源软件。提供了SQL⼯具包及对象关系映射(ORM)⼯具from sqlalchemy import create_engine
df = pd.DataFrame(data = np.random.randint(0,50,size = [150,3]),# 计算机科⽬的考试成绩
columns=[‘Python’,’Tensorflow’,’Keras’])
# 数据库连接
conn = create_engine(‘mysql+pymysql://root:12345678@localhost/pandas? charset=UTF8MB4’)
# 保存到数据库
df.to_sql(‘score’,#数据库中表名
conn,# 数据库连接
if_exists=’append’)#如果表名存在,追加数据# 从数据库中加载
pd.read_sql(‘select * from score limit 10’, # sql查询语句conn, # 数据库连接
index_col=’Python’) # 指定⾏索引名

第四节 HDF5
pip install tables -i https://pypi.tuna.tsinghua.edu.cn/simple HDF5是⼀个独特的技术套件,可以管理⾮常⼤和复杂的数据收集。
HDF5,可以存储不同类型数据的⽂件格式,后缀通常是.h5,它的结构是层次性的。
⼀个HDF5⽂件可以被看作是⼀个组包含了各类不同的数据集
第四部分 数据输⼊与输出 - 图2

对于HDF5⽂件中的数据存储,有两个核⼼概念:group 和 dataset
dataset 代表数据集,⼀个⽂件当中可以存放不同种类的数据集,这些数据集如何管理,就⽤到了group 最直观的理解,可以参考我们的⽂件管理系统,不同的⽂件位于不同的⽬录下。
⽬录就是HDF5中的group, 描述了数据集dataset的分类信息,通过group 有效的将多种dataset 进⾏管理和区分;⽂件就是HDF5中的dataset, 表示的是具体的数据。

import numpy as np
import pandas as pd
df1 = pd.DataFrame(data = np.random.randint(0,50,size = [50,5]), # 薪资情况
columns=[‘IT’,’化⼯’,’⽣物’,’教师’,’⼠兵’])
df2 = pd.DataFrame(data = np.random.randint(0,50,size = [150,3]),# 计算机科⽬的考试成绩
columns=[‘Python’,’Tensorflow’,’Keras’]) # 保 存 到 当 前 路 径 下 , ⽂ 件 命 名 是 :data.h5 df1.to_hdf(‘./data.h5’,key=’salary’) # 保存数据的key,标记
df2.to_hdf(‘./data.h5’,key = ‘score’)
pd.read_hdf(‘./data.h5’,
key = ‘salary’)#获取指定的标记、key的数据