如何将熊猫数据框附加到Excel工作表

时间:2020-06-23 03:24:13

标签: python excel pandas

嗨,我已经看到了解决更复杂问题的方法,但是我正在尝试执行以下操作:

将数据框附加到excel表。我有一个Excel文件,其中包含以下数据:

# Create Initial Excel 
data = [['tom', 10,1,'a'], ['matt', 15,5,'b'],['nick', 18,2,'b'],['luke', 12,6,'b'],['geoff', 20,10,'a']]

# Create the pandas DataFrame 
df = pd.DataFrame(data, columns = ['Name', 'Attempts','Score','Category']) 
df
    Name    Attempts    Score   Category
0   tom     10             1    a
1   matt    15             5    b
2   nick    18             2    b
3   luke    12             6    b
4   geoff   20             10   a

df.to_excel('Excel.xlsx',index=False)

每个星期我都会收到以下形式的新数据:

  #New Dataframe
    data2 = [['mick', 10,1,'a'], ['matt', 15,5,'b'],['jim', 18,2,'b'],['mark', 12,6,'b'],['geoff', 20,10,'a']]
    df2 = pd.DataFrame(data2, columns = ['Name', 'Attempts','Score','Category']) 
    df2
        Name    Attempts    Score   Category
    0   mick    10             1    a
    1   matt    15             5    b
    2   jim     18             2    b
    3   mark    12             6    b
    4   geoff   20            10    a

我尝试了以下操作,将新数据附加到电子表格数据下方:

#Append DF2

with pd.ExcelWriter('Excel.xlsx',
                    mode='a') as writer:
    df2.to_excel(writer,'Sheet1',index=False,header=False)

但是它已经附加到新的表格上了吗?

我只是希望添加到我的excel中,以便它出现:

Name    Attempts    Score   Category
0   tom     10             1    a
1   matt    15             5    b
2   nick    18             2    b
3   luke    12             6    b
4   geoff   20             10   a
0   tom     10             1    a
1   matt    15             5    b
2   nick    18             2    b
3   luke    12             6    b
4   geoff   20             10   a

2 个答案:

答案 0 :(得分:0)

您可以尝试使用一种方法,在此answer中提到了类似的内容。 我的建议是先连接两个数据框,然后再写入Excel文件,而不要尝试合并Excel文件。

(element.parentNode as TypeYouWant).MaterialTextfield.boundUpdateClassesHandler();

答案 1 :(得分:0)

我在append dataframe to excel with pandas找到了答案,并提供了问题的详细信息

from openpyxl import load_workbook

path = "Excel.xlsx"
book = load_workbook(path)
writer = pandas.ExcelWriter("Excel.xlsx", engine='openpyxl')
writer.book = book
writer.sheets = {ws.title: ws for ws in book.worksheets}


df2.to_excel(writer, startrow=writer.sheets['Sheet1'].max_row, index = False,header= False)

writer.save()