欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-08-06 18:11:57
excel_path:保存的excel文件路径import osimport pandas as pddef write_into_excel_01(): ''' 添加excel_writer后就不需要添加excel_path参数了 使用此方法在一个excel中添加多个DataFram到不同sheet, 需要DataFrame同时写入, 如果用循环分次添加依然会覆盖前面的数据(即excel数据已经存在了), 只有最后的sheet会保留 :r....
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()

本文地址:https://blog.csdn.net/MarkAustralia/article/details/107671483

相关标签: pandas/excel python