1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > python excel数据框_使用python pandas使用新数据框附加现有excel表

python excel数据框_使用python pandas使用新数据框附加现有excel表

时间:2021-08-26 05:06:42

相关推荐

python excel数据框_使用python pandas使用新数据框附加现有excel表

用于将DataFrame附加到现有Excel文件的辅助函数:

def append_df_to_excel(filename, df, sheet_name='Sheet1', startrow=None,

truncate_sheet=False,

**to_excel_kwargs):

"""

Append a DataFrame [df] to existing Excel file [filename]

into [sheet_name] Sheet.

If [filename] doesn't exist, then this function will create it.

Parameters:

filename : File path or existing ExcelWriter

(Example: '/path/to/file.xlsx')

df : dataframe to save to workbook

sheet_name : Name of sheet which will contain DataFrame.

(default: 'Sheet1')

startrow : upper left cell row to dump data frame.

Per default (startrow=None) calculate the last row

in the existing DF and write to the next row...

truncate_sheet : truncate (remove and recreate) [sheet_name]

before writing DataFrame to Excel file

to_excel_kwargs : arguments which will be passed to `DataFrame.to_excel()`

[can be dictionary]

Returns: None

"""

from openpyxl import load_workbook

import pandas as pd

# ignore [engine] parameter if it was passed

if 'engine' in to_excel_kwargs:

to_excel_kwargs.pop('engine')

writer = pd.ExcelWriter(filename, engine='openpyxl')

# Python 2.x: define [FileNotFoundError] exception if it doesn't exist

try:

FileNotFoundError

except NameError:

FileNotFoundError = IOError

try:

# try to open an existing workbook

writer.book = load_workbook(filename)

# get the last row in the existing Excel sheet

# if it was not specified explicitly

if startrow is None and sheet_name in writer.book.sheetnames:

startrow = writer.book[sheet_name].max_row

# truncate sheet

if truncate_sheet and sheet_name in writer.book.sheetnames:

# index of [sheet_name] sheet

idx = writer.book.sheetnames.index(sheet_name)

# remove [sheet_name]

writer.book.remove(writer.book.worksheets[idx])

# create an empty sheet [sheet_name] using old index

writer.book.create_sheet(sheet_name, idx)

# copy existing sheets

writer.sheets = {ws.title:ws for ws in writer.book.worksheets}

except FileNotFoundError:

# file does not exist yet, we will create it

pass

if startrow is None:

startrow = 0

# write out the new sheet

df.to_excel(writer, sheet_name, startrow=startrow, **to_excel_kwargs)

# save the workbook

writer.save()

旧答案:它允许您将多个DataFrame写入新的Excel文件.

您可以将openpyxl引擎与startrow参数结合使用:

In [48]: writer = pd.ExcelWriter('c:/temp/test.xlsx', engine='openpyxl')

In [49]: df.to_excel(writer, index=False)

In [50]: df.to_excel(writer, startrow=len(df)+2, index=False)

In [51]: writer.save()

C:/temp/test.xlsx:

如果你不想复制列名,你可能还想指定header = None …

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。