2021-05-23:pandas 新增sheet,不覆盖原来已经保存的sheet

@@@@@pandas 新增sheet,不覆盖原来已经保存的sheet(亲测管用)

口袋里的小小哥 2020-06-02 14:49:02  2759  收藏 9
分类专栏: python 文章标签: pandas 新增sheet不覆盖原数据 数据分析
版权
#以前的sheet数据很重要,又要新增sheet,很难受,看了一堆帖子没一个回答在点子上,找到了方法,分享给大家

import openpyxl
import pandas as pd
weatherfile = "0317.xlsx"  #路径
writer = pd.ExcelWriter(weatherfile,engine='openpyxl')
pd_data=pd.DataFrame(数据)   # 

writer = pd.ExcelWriter(weatherfile,engine='openpyxl')
book = openpyxl.load_workbook(writer.path)
writer.book = book
final_results.to_excel(writer, "新sheet名",index=False)
writer.save()

# 没覆盖,新增成功
————————————————
版权声明:本文为CSDN博主「口袋里的小小哥」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41868948/article/details/106495978

 

@@@@@pandas 将多个DataFrame.to_excel写入不同的Sheet

赶在日落之前 2020-09-23 14:13:26  489  收藏 1
版权
话不多说直接上代码:

 

 

path = r"C:\Users\Administrator\Desktop"
if not os.path.exists(path):
    os.mkdir(path)
path1 = path + r'\test.xlsx'
 
book = xlrd.open_workbook(r'C:\Users\Administrator\Desktop\多个sheet的测试数据表.xlsx')
with pd.ExcelWriter(path1) as writer:
    sheet_name = book.sheet_names()
    for i in sheet_name:
        new_data = get_data(i)
        print(new_data)
        new_data.to_excel(writer, sheet_name=i)
    writer.save()
其中get_data是我读测试表返回的dataframe的函数 ,大致就是把每个sheet文件变成dataframe返回出来

def get_data(i):
    table = book.sheet_by_name(u"%s" % (i))
    data_list = []
    for i in range(table.nrows - 1):
        commpany_name = table.col(0)[i + 1].value
        fund_name = table.col(1)[i + 1].value
        amt_rank = table.col(2)[i + 1].value
        data_list.append((commpany_name, fund_name, amt_rank))
    data = pd.DataFrame(data_list, columns=["commpany_name", "fund_name", "manager_name"], dtype=object)
    return new_data
 
————————————————
版权声明:本文为CSDN博主「赶在日落之前」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lzz781699880/article/details/108751836

 

 

@@@@@DataFrame.to_excel多次写入不同Sheet

墙角的秋天 2018-03-20 17:08:26  33602  收藏 38
分类专栏: 数据清洗 文章标签: excel 文档 应用 pandas
版权
主要需要pd.ExcelWriter([文件路径])方法
参考官方文档:

>>> writer = pd.ExcelWriter('output.xlsx')
>>> df1.to_excel(writer,'Sheet1')
>>> df2.to_excel(writer,'Sheet2')
>>> writer.save()
1
2
3
4
以下为实际应用:


"""
df1,df2均为sql查询来的数据
excel_filepath为要生成保存的excel文件地址
"""


write = pd.ExcelWriter(excel_filepath)
df1 = pd.DataFrame(d_f1)
excel_header = ['日期','年龄']#excel的标题
df1.to_excel(write,sheet_name='Sheet1',header=excel_header,index=False)


df2 = pd.DataFrame(d_f2)
excel_header = ['日期','人数']
df2.to_excel(write,sheet_name='Sheet2',header=excel_header,index=False)
write.save()
————————————————
版权声明:本文为CSDN博主「墙角的秋天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wangxingfan316/article/details/79628463

 

@@@@@@

pd.ExcelWriter(to_excel)保存结果到已存在的excel文件中

时间:2019-11-30

本文章向大家介绍pd.ExcelWriter(to_excel)保存结果到已存在的excel文件中,主要包括pd.ExcelWriter(to_excel)保存结果到已存在的excel文件中使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

 

网易云课堂该课程链接地址

https://study.163.com/course/courseMain.htm?share=2&shareId=400000000398149&courseId=1006383008&_trace_c_p_k2_=cd6d8636673a4b03b5f77ca55979c1a7

 

仅存单个excel表格就用df.to_excel更简单

pd.ExcelWriter保存结果到已存在的excel文件中,并支持多个sheet表格写入excel。

Python对excel更多功能编程需要安装openpyxl第三方包

Python代码如下

# -*- coding: utf-8 -*-
"""
Created on Sat Nov 30 13:24:28 2019

@author: [email protected]
"""
import numpy as np
import pandas as pd

df1 = pd.DataFrame({"name": ['Alfred', 'Batman', 'Catwoman'],
                   "toy": [np.nan, 'Batmobile', 'Bullwhip'],
                 "born": [pd.NaT, pd.Timestamp("1940-04-25"),
                           pd.NaT]})

df2 = pd.DataFrame({"name": ['Alfred', 'Jim', 'Catwoman'],
                   "toy": [np.nan, 'Batmobile', 'Bullwhip'],
                 "born": ['Greens',pd.Timestamp("1940-04-25"),
                           pd.NaT]})

with pd.ExcelWriter('result.xls') as writer:
    df1.to_excel(writer, sheet_name='sheet1')
    df2.to_excel(writer, sheet_name='sheet2')
    
    
#仅存单个excel表格就用to_excel更简单
df1.to_excel("result.xlsx")

 

@@@@@解决pandas .to_excel不覆盖已有sheet的问题

 更新时间:2018年12月10日 11:43:11   作者:unsterbliche  

今天小编就为大家分享一篇解决pandas .to_excel不覆盖已有sheet的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

 

直接to_excel会被覆盖,借助ExcelWriter可以实现写多个sheet。

1

2

3

4

5

6

7

8

9

10

11

12

from openpyxl import load_workbook

excelWriter = pd.ExcelWriter(os.path.join(output_dir, 'datapoint_statistic.xlsx'),

            engine='openpyxl')

pd.DataFrame().to_excel(os.path.join( output_dir,'datapoint_statistic.xlsx'))

#excel必需已经存在,因此先建立一个空的sheet

_excelAddSheet(DataFrame, excelWriter, sheet_name)

  

def _excelAddSheet(self,dataframe,excelWriter,sheet_name):

  book = load_workbook(excelWriter.path)

  excelWriter.book = book

  dataframe.to_excel(excel_writer=excelWriter,sheet_name=sheet_name,index=None)

  excelWriter.close()

 

@@@@@@ 采用pandas模块处理数据,用to_ecxel方法将处理结果写入源文件时,会将源文件覆盖,采用openpyxl函数,可以不覆盖原文件内容,在文件内增加sheet输出处理结果。

例子如下:

Python code?

1

2

3

4

5

6

7

8

9

10

11

12

import openpyxl

import pandas as pd

 

path = r"C:\Users\john\Desktop\test.xlsx"

df = pd.read_excel(path,index_col=None)

Result = df.head()

 

excel_writer = pd.ExcelWriter(path, engine='openpyxl')

book = openpyxl.load_workbook(excel_writer.path)

excel_writer.book = book

Result.to_excel(excel_writer=excel_writer, sheet_name= 'test', index=None)

excel_writer.close()

 

 

 

@@@@@采用to_excel保存文件不覆盖原有的sheet

m0_37561939 2020-05-01 22:52:42  1740  收藏 8
文章标签: python
版权
在python中用pandas中的to_excel保存文件时,会将原文件的sheet进行覆盖,无法将处理后的结果保存在读取的文件中,采用openpyxl模块可以解决这个问题,方法如下

例子

import openpyxl
import pandas as pd

path = r"C:\Users\john\Desktop\test.xlsx"
df = pd.read_excel(path,index_col=None)
Result = df.head()

excel_writer = pd.ExcelWriter(path, engine='openpyxl')
book = openpyxl.load_workbook(excel_writer.path)
excel_writer.book = book
Result.to_excel(excel_writer=excel_writer, sheet_name= 'test', index=None)
excel_writer.close()
————————————————
版权声明:本文为CSDN博主「m0_37561939」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_37561939/article/details/105884067

 

 

@@@@@@@@

import pandas
from openpyxl import load_workbook

book = load_workbook('Masterfile.xlsx')
writer = pandas.ExcelWriter('Masterfile.xlsx', engine='openpyxl') 
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])

writer.save()

 

import pandas as pd
writer = pd.ExcelWriter('foo.xlsx')
df.to_excel(writer, 'Data 0')
df.to_excel(writer, 'Data 1')
writer.save()

 

 

 

你可能感兴趣的:(2021-05-23:pandas 新增sheet,不覆盖原来已经保存的sheet)