将Pandas.DataFrame信息写入同一excel不同的sheet_name

excel_path:保存的excel文件路径

import os
import pandas as pd

def write_into_excel_01():
    '''
    添加excel_writer后就不需要添加excel_path参数了
    使用此方法在一个excel中添加多个DataFram到不同sheet,
    需要DataFrame同时写入,
    如果用循环分次添加依然会覆盖前面的数据(即excel数据已经存在了),
    只有最后的sheet会保留
    :return:
    '''
    excel_path = "./data/excel.xlsx"
    df_1 = pd.DataFrame()
    df_1 = df_1.append(pd.Series({}), ignore_index=True)
    df_2 = pd.DataFrame()
    df_2 = df_2.append(pd.Series({}), ignore_index=True)
    writer = pd.ExcelWriter(excel_path)
    df_1.to_excel(excel_writer=writer, encoding="utf-8", index=False, sheet_name="df_1")
    df_2.to_excel(excel_writer=writer, encoding="utf-8", index=False, sheet_name="df_2")
    writer.save()
    writer.close()

def write_into_excel_02():
    '''
    添加excel_writer后就不需要添加excel_path参数了
    使用此方法在一个excel中添加多个DataFram到不同sheet,
    可分批添加,不会有覆盖数据的问题,
    即每次都将已存在的excel中的数据拿出再和新数据一起写入。
    :return:
    '''
    excel_path = "./data/excel.xlsx"
    df = pd.DataFrame()
    df = df.append(pd.Series({}), ignore_index=True)
    writer = pd.ExcelWriter(excel_path)
    if not os.path.exists(excel_path):
        df.to_excel(excel_writer=writer, encoding="utf-8", index=False, sheet_name="df")
    else:
        data_dict = pd.read_excel(excel_path)  # OrderedDict
        sheet_names = list(data_dict.keys())
        for n in range(len(sheet_names)):
            sheet_name = sheet_names[n]
            tmp_df = data_dict.get(sheet_name)  # 通过sheet_name获取对应的DataFrame
            tmp_df.to_excel(excel_writer=writer, encoding="utf-8", index=False, sheet_name="df")
        df.to_excel(excel_writer=writer, encoding="utf-8", index=False, sheet_name="df")
    writer.save()
    writer.close()
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值