赞
踩
使用to_excel()方法,将DataFrame对象写入excel文件。to_excel()方法中,第一个参数是文件路径,如果文件不存在,则会自动创建该文件。其中,常用的参数有index和sheet_name。
index参数默认为True,系统在表格前添加一列以0为开头的索引列。sheet_name参数用来设置表名。
例如,
import pandas as pd
student_name = pd.DataFrame({"学号": [1, 2, 3, 4, 5], "姓名": ["赵", "钱", "孙", "李", "周"]}) # 创建一个名为student_name的DataFrame对象
student_name.to_excel("student.xlsx", sheet_name="学生名单", index=False) # 在当前文件目录下创建一个student.xlsx文件,将student_name写入,取消索引列,表格名为"学生名单"
如果要实现多文件循环写入,需要注意以下几点:
- 需要创建一个ExcelWriter对象。
- 如果表格名称和DataFrame对象的名称相同,需要将DataFrame名转换为字符串。
- 将表格名称和要写入的表格打包,以便循环写入。
- 最后要使用save()方法保存文件。
我们使用ExcelWriter()创建ExcelWriter对象。
ExcelWriter()中只需传入文件路径即可。
如果表格名和DataFrame名称相同,我们可以使用自定义函数的方法进行转换。
def namestr(obj, namespace=globals()):
return [name for name in namespace if namespace[obj] is obj and len(name) > 1]
注意,该方法并不一定确保获取正确的名称,建议最后对excel文件进行手动检查。
globals()方法将返回一个包含所有变量名的字典。
我们使用zip()方法将表格名和DataFrame对象打包。
注意,最后一定要使用save()方法保存文件。
import pandas as pd # 导入pandas库 student_name = pd.DataFrame({"学号": [1, 2, 3, 4, 5], "姓名": ["赵", "钱", "孙", "李", "周"]}) student_info = pd.DataFrame({"姓名": ["赵", "钱", "孙", "李", "周"], "性别": ["男", "女", "女", "男", "女"]}) def namestr(obj, namespace=globals()): return [name for name in namespace if namespace[name] is obj and len(name) > 1] # 定义函数 sheets = [student_name, student_info] # 表格列表 names = [] # 表名列表 for sheet in sheets: # 将表名添加到表名列表 names.append(namestr(sheet)[0]) sheets_names = zip(sheets, names) # 打包 for sheet, name in sheets_names: # 循环写入 sheet.to_excel(writer, index=False, sheet_name=name) writer.save() # 文件保存
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。