1读写不同数据源的数据
1.1读写文本文件
1.1.1文件读取
文本文件(txt文件)是一种由若干行字符构成的计算机文件,它是一种典型的顺序文件。使用read_table来读取文本文件:
pandas.read_table(filepath_or_buffer, sep=’\t’, header=’infer’, names=None, index_col=None, dtype=None, engine=None, nrows=None)
csv是一种逗号分隔的文件格式,因为其分隔符不一定是逗号,又被称为字符分隔文件,文件以纯文本形式存储表格数据(数字和文本)。使用read_csv函数来读取csv文件:
pandas.read_csv(filepath_or_buffer, sep=’,’, header=’infer’, names=None, index_col=None, dtype=None, engine=None, nrows=None)
read_table和read_csv常用参数及其说明。
- read_table和read_csv函数中的sep参数是指定文本的分隔符的,如果分隔符指定错误,在读取数据的时候,每一行数据将连成一片。
- header参数是用来指定列名的,如果是None则会添加一个默认的列名。
- encoding代表文件的编码格式,常用的编码有utf-8、utf-16、gbk、gb2312、gb18030等。如果编码指定错误数据将无法读取,IPython解释器会报解析错误。
import pandas as pd
data = pd.read_table(r'F:\Desktop\2020.09.21-30广东海洋大学实训\9.23Pandas统计分析基础\meal_order_info.csv', encoding='gbk', sep=',')
info = pd.read_csv(r'F:\Desktop\2020.09.21-30广东海洋大学实训\9.23Pandas统计分析基础\meal_order_info.csv', encoding='gbk')
注:pands.read_table中参数encoding默认的编码是“utf-8”,但meal_order_info.csv文件的编码格式是“gbk”,所以需要进行encoding参数的设置。一般情况下,编码格式不是“utf-8"的话,先试试是不是”gbk“的,不是再接着试utf-16、gb2312、gb18030这几个编码格式。
1.1.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)
info.to_csv(r'F:\Desktop\2020.09.21-30广东海洋大学实训\9.23Pandas统计分析基础\info.csv', encoding='gbk')
有时候保存出来的数据是乱码的情况,这时就需要设置下encoding这个参数。
1.2读写Excel文件
1.2.1Excel文件读取
pandas提供了read_excel函数来读取“xls”“xlsx”两种Excel文件。
pandas.read_excel(io, sheetname=0, header=0, index_col=None, names=None, dtype=None)
detail = pd.read_excel(r'F:\Desktop\2020.09.21-30广东海洋大学实训\9.23Pandas统计分析基础\meal_order_detail.xlsx')
1.2.2Excel文件存储
将文件存储为Excel文件,可以使用to_excel方法。其语法格式如下。
DataFrame.to_excel(excel_writer=None, sheet_name=None’, na_rep=”, header=True, index=True, index_label=None, mode=’w’, encoding=None)
to_csv方法的常用参数基本一致,区别之处在于指定存储文件的文件路径参数名称为excel_writer,并且没有sep参数,增加了一个sheet_name参数用来指定存储的Excel sheet的名称,默认为sheet1。
detail.to_excel(r'F:\Desktop\2020.09.21-30广东海洋大学实训\9.23Pandas统计分析基础\detail.xlsx', sheet_name='A')
info.to_excel(r'F:\Desktop\2020.09.21-30广东海洋大学实训\9.23Pandas统计分析基础\detail.xlsx', sheet_name='B') #会覆盖原始数据
#将数据保存在一个Excel的多个字表中
with pd.ExcelWriter(r'F:\Desktop\2020.09.21-30广东海洋大学实训\9.23Pandas统计分析基础\detail.xlsx') as w:
detail.to_excel(w, sheet_name='A')
info.to_excel(w, sheet_name='B')