SOK*_*SOK 3 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)
Run Code Online (Sandbox Code Playgroud)
每周我都会收到以下形式的新数据:
#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
Run Code Online (Sandbox Code Playgroud)
我已尝试以下方法在电子表格数据下方附加新数据:
#Append DF2
with pd.ExcelWriter('Excel.xlsx',
mode='a') as writer:
df2.to_excel(writer,'Sheet1',index=False,header=False)
Run Code Online (Sandbox Code Playgroud)
但它已附加到新表中?
我只是希望添加到我的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
Run Code Online (Sandbox Code Playgroud)
我在这里找到了答案附加数据框以使用 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()
Run Code Online (Sandbox Code Playgroud)