存储与加载 Excel 文件
read_excel/to_excel() 函数是 pandas 用来存储与加载 Excel 文件的方法,但需要调用 Python 的 xlrd 模块来读取或写入 Excel 2003 (.xls) 版的文件或是用 openpyxl 模块来存取 Excel 2007+ (.xlsx) 版的文件。因此在使用这些函数前需要先安装 openpyxl 与 xlrd 模块。
图 3-2-2 安装存取 Excel 所需的包
将上例中的实例透过 to_excel() 函数写入 Excel 文件到磁盘,第一个参数是 Excel 文件的名字,而可选的第二个参数是 DataFrame 内的数据应该写入的数据表名称。
实例
import pandas as pd
dataDir = './data/2021_duplicate checking2.txt'
df = pd.read_csv(dataDir, sep='\t', encoding='GB18030')
df.to_excel('./data/2021_duplicate checking2.xlsx', sheet_name='Sheet1', encoding='utf-8')
图 3-2-3 将 CSV 格式文件存储到 Excel 的指定数据表
也可以将两个数据框存储在同一个 Excel 表内的不同数据表,以下实例是将上节的两个 CSV 文件分别存入 bikeInfo 与 duplicate 数据表中。
实例
import pandas as pd
dataDir1 = './data/comptage_velo_2020.csv'
dataDir2 = './data/2021_duplicate checking2.txt'
df1 = pd.read_csv(dataDir1,nrows=100)
df2 = pd.read_csv(dataDir2, nrows=100, sep='\t', encoding='GB18030')
with pd.ExcelWriter('./data/merge.xlsx') as xlsxWriter:
df1.to_excel(xlsxWriter, sheet_name='bikeInfo')
df2.to_excel(xlsxWriter, sheet_name='duplicate')
图 3-2-4 将两份 CSV 文件存储到一份 Excel 的数据表
在加载 Excel 文件时,也可以透过位置的方式来读取,或是直接指定数据表名称。
实例
import pandas as pd
with pd.ExcelFile('./data/merge.xlsx') as xlsxReader:
df1 = pd.read_excel(xlsxReader, sheet_name=0)
df2 = pd.read_excel(xlsxReader, 'duplicate')
print(df1.iloc[:3,1:5])
print(df2.iloc[:3,1:5])
输出结果为:
Date compteur_100054073 compteur_100052606 compteur_100003032
0 2020/1/1 0:00 0 0 0
1 2020/1/1 0:15 0 0 1
2 2020/1/1 0:30 0 0 0
序号 专业 状态 检测结果
0 1 信息安全与管理 已上传 0%
1 2 信息安全与管理 已上传 0%
2 3 软件技术 已上传 0%
|