追加python数据帧未正确追加

追加python数据帧未正确追加,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下代码: import pandas as pd df2 = pd.DataFrame(dataset) df = pd.read_excel (r'C:/adhoc/test.xlsx') df.append(df2,ignore_index=True) # Create a Pandas Excel writer using XlsxWriter as the engine. writer = pd.ExcelWriter(r'C:/adhoc/test.xlsx', engin

我有以下代码:

import pandas as pd
df2 = pd.DataFrame(dataset)

df = pd.read_excel (r'C:/adhoc/test.xlsx')

df.append(df2,ignore_index=True)

# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter(r'C:/adhoc/test.xlsx', engine='xlsxwriter')

# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1')

# Close the Pandas Excel writer and output the Excel file.
writer.save()
我正在尝试获取df2(当前数据集)并将其附加到已经存在的数据(df)中,然后将所有内容写回文件中。基本上,获取新数据并将其附加到工作表的底部。当我运行这段代码时,它会在已经存在的索引列旁边添加一个额外的索引列

方法“append”不会更改数据帧,而是返回另一个包含这两个数据的数据帧。因此,必须将新数据帧保存在变量中。代码应类似于以下内容:

    df2 = df.append(df2, ignore_index=True)
    df2.to_excel('mi_file.xlsx', sheet_name = 'Sheet1')

如果您对第三个合并的数据帧感觉良好,这将产生一个有效的解决方案:
df1=pd.concat([df,df2],ignore_index=True)
而不是append。解决方案在于创建一个新变量,不管它是append还是concat,但我猜,使用concat似乎更清楚一些。

也许可以使用with语句来确保编写器正在关闭。文档示例:使用ExcelWriter('path_to_file.xlsx',mode='a')作为编写器:df.to_excel(writer,sheet\u name='Sheet3')谢谢您的工作。剩下的唯一一件事是,它每次运行时都会附加一个额外的列'Unamed:'x'number'。我认为忽略索引忽略了这一部分。