1.excel文件
Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件,数据分析处理只关心数据,不关心样式
Excel vs CSV
都可以通过Microsoft的Excel程序打开
Excel:除了文本,数据也可以包含图表、样式、工作簿等
CSV:每条记录都存储为一行文本文件,每一条新行都表示一个新的数据记录。CSV不能存储图表或样式
2.excel文件操作
使用Python进行Excel文件操作的方法有很多种,如:
使用xlrd库读取Excel数据
使用xlwt库向Excel中写入数据,创建工作表等
使用openpyxl库读写excel数据
使用pandas库读写Excel数据
pd.read_excel(io, sheet_name=0, header=0, skiprows=None, skip_footer=0, index_col=None, names=None, encoding=None, parse_cols=None, parse_dates=False, date_parser=None, na_values=None, thousands=None, convert_float=True, has_index_names=None, converters=None, dtype=None, true_values=None, false_values=None, engine=None, squeeze=False, **kwds)
DataFrame.to_excel(excel_writer, sheet_name='Sheet1', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True, encoding=None, inf_rep='inf', verbose=True, freeze_panes=None)
常用参数:
io: excel文件,可以是文件路径、文件网址、file-like对象、xlrd workbook;
Sheet_name:返回指定的sheet,参数可以是字符串(sheet名)、整型(sheet索引)、list(元素为字符串和整型,返回字典{'key':'sheet'})、none(返回字典,全部sheet);
header:指定数据表的表头,参数可以是int、list of ints,即为索引行数为表头;
names:返回指定name的列,参数为array-like对象。
encoding:关键字参数,指定以何种编码读取。
该函数返回pandas中的DataFrame或dict of DataFrame对象,利用DataFrame的相关操作即可读取相应的数据。
(1)读取指定工作表中的数据
sheet = pd.read_excel(‘happiness.xlsx’,sheet_name= [0,1]) #通过工作表索引号指定,此例是读取前两个工作表中的数据
sheet = pd.read_excel(‘happiness.xlsx’,sheet_name= [‘2015’,’2016’]) #通过工作表名称指定,此例是读取前两个工作表中的数据
#参数为None时,返回全部的表格,是一个表格的字典;
#当参数为list = [0,1]时,返回的多表格同样是字典;
sheet = pd.read_excel(‘happiness.xlsx’,sheet_name= ‘2015’)
sheet = pd.read_excel(‘happiness.xlsx’,sheet_name= 1])
#只指定一个工作表时,返回的是dataframe
(2)其他操作
sheet = pd.read_excel(‘happiness.xlsx’,sheet_name=1,header=None) #不含作为列名的行,显示列索引值。如果header默认值为0,读取第一行数据作为列名。
sheet = pd.read_excel(‘happiness.xlsx’, sheet_name=1 ,skiprows=1]) #略去第一行的数据
sheet = pd.read_excel(‘happiness.xlsx’,sheet_name= 1,skip_footer=1]) #略去最后一行数据
sheet = pd.read_excel(‘happiness.xlsx’,sheet_name= 1,index_col=1]) #指定第二列作为行索引
sheet = pd.read_excel(‘happiness.xlsx’,sheet_name= 1,names=[‘a’,b’,’c’]) #指定列名,列名数要和显示列数相同
(3)单一工作表数据写入
sheet = pd.read_excel(‘happiness.xlsx’,sheet_name=1)
Sheet_top5 = sheet.head(5)
Sheet_top5 .to_excel((‘ha_top5.xlsx’)
Sheet_top5 .to_excel(‘ha_top5.xlsx’,sheet_name=‘top5’)
Sheet_top10 = sheet.head(10)
Sheet_top10 .to_excel(‘ha_top10.xlsx’,sheet_name=‘top10’)
(4)多个工作表数据写入
writer = pd.ExcelWriter(‘happiness_top.xlsx’)
df_data = pd.read_excel(‘happiness.xlsx’, sheetname=['2015', '2017'])
Top5_2015=df_data[‘2015’].head()
Top5_2015.to_excel(writer,’2015-top5’)
Top10_2017=df_data[‘2017’].head(10)
Top10_2017.to_excel(writer,’2017-top10’)
writer.save()