python 读取excel文件

时间:2023-03-09 05:14:05
python 读取excel文件

方法一:利用pandas

import pandas as pd

inputfile_1 = "F:\\大论文实验\\福贡县数据\\贫困人口数据_2015.xlsx"

data1 = pd.read_excel(inputfile_1)#,index_col = '序号'

#打印表头
list1 = data1.columns.values.tolist()

print(list)

#打印数据基本统计信息

statistics = data1.describe() # 利用里面的基本统计量计算

# 极差
statistics.loc["range"] = statistics.loc["max"] - statistics.loc["min"]
# 变异系数
statistics.loc["var"] = statistics.loc["std"] / statistics.loc["mean"]
# 四分数间距 IQR
statistics.loc["dis"] = statistics.loc["75%"] - statistics.loc["25%"]

print(statistics)
#写入数据

import pandas as pd
writer = pd.ExcelWriter('output.xlsx')
df1 = pd.DataFrame(data={'col1':[1,1], 'col2':[2,2]})
df1.to_excel(writer,'Sheet1')
writer.save()

主要参数:

#参考原文:https://blog.****.net/brink_compiling/article/details/76890198

pd.read_excel(io, sheetname=0, header=0, skiprows=None, skip_footer=0, index_col=None, names=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)
'''
该函数主要的参数为io、sheetname、header、names、encoding。
io:excel文件,可以是文件路径、文件网址、file-like对象、xlrd workbook;
sheetname:返回指定的sheet,参数可以是字符串(sheet名)、整型(sheet索引)、list(元素为字符串和整型,返回字典{'key':'sheet'})、none(返回字典,全部sheet);
header:指定数据表的表头,参数可以是int、list of ints,即为索引行数为表头;
names:返回指定name的列,参数为array-like对象。
encoding:关键字参数,指定以何种编码读取。
该函数返回pandas中的DataFrame或dict of DataFrame对象,利用DataFrame的相关操作即可读取相应的数据。
'''

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)
'''
该函数主要参数为:excel_writer。
excel_writer:写入的目标excel文件,可以是文件路径、ExcelWriter对象;
sheet_name:被写入的sheet名称,string类型,默认为'sheet1';
na_rep:缺失值表示,string类型;
header:是否写表头信息,布尔或list of string类型,默认为True;
index:是否写行号,布尔类型,默认为True;
encoding:指定写入编码,string类型。
'''

方法二:openpyxl

from __future__ import division
from openpyxl import load_workbook
wb = load_workbook("C:\\Users\\zqs1\\Desktop\\数据处理\\贫困20172.xlsx")
a_sheet = wb.get_sheet_by_name('Sheet1')
b_sheet = wb.get_sheet_by_name('Sheet2')

for k in range(2, 53600):
n = b_sheet.cell(row=k, column=21).value
b_sheet.cell(row=1, column=26).value = 0
for m in range(1, n):
b_sheet.cell(row=1, column=26).value = b_sheet.cell(row=1, column=26).value + b_sheet.cell(row=k+m-1, column=22).value
b_sheet.cell(row=k, column=25).value = b_sheet.cell(row=1, column=26).value

#保存文件

wb.save("C:\\Users\\zqs1\\Desktop\\数据处理\\贫困20174.xlsx")

方法三:使用xlrd、xlwt

#打开文件

readbook = xlrd.open_workbook(C:\\Users\\zqs1\\Desktop\\数据处理\\贫困20172.xlsx)

#获取读入的文件的sheet

sheet = readbook.sheet_by_name('sheet2')

#获取某个单元格的值

n = table.cell(i,3).value

#打开将写的表并添加sheet

writebook = xlwt.Workbook()#打开一个excel

sheet = writebook.add_sheet('test')#在打开的excel中添加一个sheet
#将数据写入excel

sheet.write(i,0,result[0])#写入excel,i行0列
sheet.write(i,1,result[1])
#保存

writebook.save('answer.xls')#一定要记得保存

参考原文:https://blog.****.net/Odyssues_lee/article/details/81503619