购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.4 数据读取与存储

3.4.1 Pandas读取Excel数据

Excel是一种常用的数据储存形式,应用非常广泛。Pandas可以通过以下代码实现Excel读取: pd . read_excel (“path_to_file.xlsx”, sheet_name=“Sheet1”,index_col=None)。其中,path_to_file.xlsx为Excel文件路径(注意在Windows下,路径需要使用“\\”,如c:\\windows\\temp\\readme.xlsx,或者在路径前加字母r,如r“C:\Windows\temp\readme.xlsx”),扩展名为“.xlsx”或“.xls”,sheet_name为读取的Sheet名,index_col=None表示不指定index。主要参数详见表3-6。

表3-6 read_excel()函数主要参数说明

使用read_excel()函数读取eye.xlsx,如代码清单3-20所示。

代码清单3-20 读取Excel格式文件数据

代码清单3-20中,parse_dates=[ 10 , 12 ]表示对第10列和12列(对应“reported”和“诊断日期”两列)的数据进行日期格式解析;date_parser是具体的格式化方法,采用lambda函数对日期格式进行规范化,errors= 'coerce' 表示跳过异常或非法数据。另外,Excel文件中的“出生日期”列采用了13位时间戳格式,若采用to_datetime(),需要对其进行转换,单位是毫秒(ms)。代码运行结果如下:

3.4.2 Pandas读取CSV文件

CSV(Comma-Separated Values)是使用逗号分隔的一系列纯文本格式文件,文件扩展名为“.csv”。与Excel比较,CSV文件不包含格式、公式、宏等,仅是一个文本文件。但也因为它是一种纯文本格式,编程更易读取,而且不容易出错,所以将数据储存为.csv文件较常用。

Pandas读取CSV格式数据的常用代码为: pd . read_csv (''path_to_file.csv'', index_col= 0 )。其中,path_to_file.csv为CSV文件路径,index_col=0为指定第一列为index。

使用read_csv()读取health.csv文件,如代码清单3-21所示。

代码清单3-21 读取CSV格式文件数据

在代码清单3-21中,第一个参数是文件路径,encoding='GBK'表示读取文件使用GBK编码处理中文;header=0表示将CSV文件中的第一行数据作为标题;index_col=['序号']表示将“序号”列作为索引;parse_dates=['检查时间']表示将“检查时间”这一列转换为标准的日期格式;converters={'BMI':float}表示将“BMI”这一列转换为浮点数据类型,防止数值类型用科学计数法显示。

print(df.head(6))执行结果如下:

此外,to_string()用于返回DataFrame类型的全部数据,如果不使用该函数,则输出结果为数据的前面5行和末尾5行,中间部分以“…”代替。用df. head ( 6 )只显示前6条数据。read_csv()的参数比较多,可在实际使用过程中灵活运用。

3.4.3 Pandas读取Txt数据

Pandas除了读取CSV文件外还可以读取“txt”纯文本格式文件,常用代码为: pd .read_table('path_to_file.txt')。

read_table()函数的参数较多,主要说明见表3-7。

表3-7 read_table()函数常见参数说明

使用read_table()函数读取health.txt文件,如代码清单3-22所示。

代码清单3-22 使用read_table方法读取Txt文件

代码运行结果如下:

3.4.4 Pandas读取SAS、Stata和SPSS数据

在实际数据分析中,还会经常遇到SAS、Stata和SPSS等统计软件的数据集,Pandas也可以直接读取。

(1)读取SAS文件:Pandas提供read_sas()函数用于读取SAS文件,但是实际使用中遇到文件中包含中文等字符时,容易出错,此时可以使用第三方库(sas7bdat)完成读取。程序如下:首先使用代码“conda install sas7bdat”安装sas7bdat库,然后可以使用代码清单3-23读取SAS文件。

代码清单3-23 读取sas数据集

(2)读取SPSS文件:在读取前需要先执行“conda install pyreadstat”安装pyreadstat库,然后才能使用代码“pd.read_spss()”读取SPSS文件。

(3)读取Stata文件:Pandas可以通过“pd.read_stata()”直接读取Stata文件。

(4)读取大文件:当读取数据量较大时,如果计算机配置不够高,内存不足等,经常会遇到程序报错,这种情况下可以使用chunksize分块读取数据,再分别进行处理,如代码清单3-24所示。其中,每个chunk是包含10 000行的DataFame,即将原始数据分为多个chunk,进行分批处理。

代码清单3-24 分行读取数据

3.4.5 存储数据

与SAS、R等软件不同,Pandas没有特定数据储存格式,可以储存为Excel、CSV、HTML、Stata等数据格式,详见代码清单3-25。

代码清单3-25 保存数据

以储存CSV文件为例,使用to_csv()将DataFrame存储为CSV文件,如代码清单3-26所示。 frnLKAMJV72wCDL9W/tyflQRLTZhrpJhLLngGBEB9PhNpgmM6GLnxnvvvCUwX28u

代码清单3-26 将DataFrame数据存储到CSV文件示例
点击中间区域
呼出菜单
上一章
目录
下一章
×