Python:pandas读写excel

pandas读写excel

  • 1. 写入
  • 2. 读取

1. 写入

#encoding=utf-8
#import sys
#reload(sys)
#sys.setdefaultencoding('utf8')
import pandas as pd

def make_sheet():
	col = ['周一', '周二', '周三', '周四', '周五']
	idx = ['第一节', '第二节', '第三节', '第四节']
	Monday = ['歌唱', '阅读', '互动', '科学']
	Tuesday = ['语文', '数学', '英语', '劳动']
	Wednesday = ['物理', '化学', '生物', '体育']
	Thursday = ['政治', '历史', '地理', '心理']
	Friday = ['游戏', '互动', '故事', '音乐']
	df_content = pd.DataFrame(data={col[0]: Monday,
									col[1]: Tuesday,
									col[2]: Wednesday,
									col[3]: Thursday,
									col[4]: Friday},
							  index=idx,
							  columns=col)
	return df_content

if __name__ == '__main__':
	excel_writer = pd.ExcelWriter('write1.xlsx')
	df = make_sheet()
	df.to_excel(excel_writer, sheet_name='课程表', float_format='%.2f', header=True, index=True, index_label='课表')
	excel_writer.save()

  效果图如下:
Python:pandas读写excel_第1张图片  一般情况下只需要表头(列名),不需要行索引(行名)。要生成这样的表只需要:

  1. 注释掉第20行。
  2. 在第27行设置index=False

2. 读取

#encoding=utf-8
import pandas as pd 

def read_excel(file_name, sheet_names='Sheet1'):
	sheet = pd.read_excel(file_name, sheet_name=sheet_names)
	#表头
	print(sheet.columns.values)
	#内容
	sheet = sheet.values
	for i in range(sheet.shape[0]):
		print(sheet[i])

def read_sheet(file_name):
	#获取各sheet名
	content = pd.ExcelFile(file_name)
	sheet_names = content.sheet_names
	#遍历sheet
	sheets = pd.read_excel(file_name, sheet_name=sheet_names)
	for i in range(len(sheets)):
		sheet = sheets[sheet_names[i]]
		#表头
		print(sheet.columns.values)
		#内容
		sheet = sheet.values
		for j in range(sheet.shape[0]):
			print(sheet[j])

if __name__ == '__main__':
	read_excel('read1.xlsx')
	read_sheet('read2.xlsx')

  如果读取不含表头的表,使用header参数:

pd.read_excel(file_name, header=None)

  函数read_excel读取含有单个sheet的表格,函数read_sheet读取含有多个sheet的表格。
  read1.xlsx如下:
Python:pandas读写excel_第2张图片
  读取read1.xlsx的结果:
读取read1.xlsx的结果
  read2.xlsx如下:
read2.xlsx
  读取read2.xlsx的结果:
Python:pandas读写excel_第3张图片

你可能感兴趣的:(Python)