pandas 数据导出为excel
今天分享一个pandas数据导出到excel的小小经验。默认你已经学会了怎么初始化数据到pandas中。这里只分享导出。导出到# file_path 需要保存的文件路径# table pandas DataFrame对象writer = pd.ExcelWriter(file_path)# 初始化一个writertable.to_excel(writer, float_format='%.5f')
·
今天分享一个pandas数据导出到excel的小小经验。默认你已经学会了怎么初始化数据到pandas中。这里只分享导出。
导出到文件中
# file_path 需要保存的文件路径
# table pandas DataFrame对象
writer = pd.ExcelWriter(file_path) # 初始化一个writer
table.to_excel(writer, float_format='%.5f') # table输出为excel, 传入writer
writer.save() # 保存
注意的点:
①pandas行号默认从0开始,可以通过下列语句解决
table.index += 1
②如果不需要行号,可以通过下列语句解决
df.to_excel(writer, index=False)
③如果需要导出给用户,通常需要修改列名,可以通过下列语句解决
columns_mapp = { "source_column": "target_column" } # 字典,键为原始列名,值为目标列名
new_table = table.rename(columns=columns_mapp) # 不修改原始table,返回新的数据帧
table.rename(columns=columns_mapp, inplace=True) # 直接修改原table
④如果需要返回到前端,不需要落盘(谨慎内存使用),可以直接保存到IO
# 准备写入到IO中
# name excel文件名
output = BytesIO() # 创建一个IO流对象
writer = pd.ExcelWriter(output) # 初始化一个writer,传入这个IO对象
table.to_excel(writer, name, encoding='utf-8') # table输出到writer中
output.seek(0) # 重新定位到开始
writer.save() # 将Excel文件内容保存到IO中
# 返回前端
response = HttpResponse(content_type='text/csv')
response.write(codecs.BOM_UTF8)
file_name = urlquote(file_name) # 使用urlquote()方法解决中文无法使用的问题
response.content = output.getvalue() # 直接从IO中获取数据
response['Content-Disposition'] = 'attachment; filename=%s' % file_name
return response
更多推荐
已为社区贡献5条内容
所有评论(0)