gpt4 book ai didi

python - 使用 pandas 将工作表添加到现有 Excel 文件

转载 作者:行者123 更新时间:2023-12-01 04:14:42 27 4
gpt4 key购买 nike

我有两个 Excel 文件。参与者完成实验,结果应提交到另一张纸上的两个 Excel 文件中。这应该发生在每个新参与者身上。工作表名称为 001,002,...,取决于参与者编号。但 Excel 文件不断被覆盖。

我正在使用的代码:

import pandas
allmeans = numpy.array([[(meanreactiontimeinputsusercongruentpositief),(meanreactiontimeinputsusercongruentnegatief),(meanreactiontimeinputsuserincongruentposneg), (meanreactiontimeinputsuserincongruentnegpos), (meanvalueinputusercongruentpositief), (meanvalueinputusercongruentnegatief), (meanreactiontimeinputsuserincongruentposneg), (meanvalueinputuserincongruentnegpos)]])
to_write = pandas.DataFrame({'Age': age, 'Gender': gender, 'MeanReactionTimeCongruentPos': allmeans[:,0], 'MeanReactionTimeCongruentNeg': allmeans[:,1], 'MeanReactionTimeIncongruentPosNeg': allmeans[:,2], 'MeanReactionTimeIncongruentNegPos': allmeans[:,3], 'MeanValueInputCongruentPos': allmeans[:,4], 'MeanValueInputCongruentNeg': allmeans[:,5], 'MeanValueInputIncongruentPosNeg': allmeans[:,6], 'MeanValueIncongruentNegPos': allmeans[:,7]})
to_write.to_excel('MeansOfUsers.xlsx',sheet_name = str(participantnumber), index = False, startrow = 3, startcol = 2)

allresults= numpy.array([listofrandomizedconditions,inputsuser,reactiontimesuser])
to_write2 = pandas.DataFrame({'Conditions': allresults[0,:], 'Inputs': allresults[1,:], 'Reactionstimes': allresults[2,:]})
to_write2.to_excel('ResultsofUsers.xlsx',sheet_name = str(participantnumber), index = False, startrow=3,startcol=2)

所以基本上它总是创建这 2 个具有正确工作表名称的 excel 文件,但除了添加新工作表之外,现有工作表只会被新工作表覆盖。我该如何解决这个问题?

编辑:我发现使用 openpyxl 的工作簿,我可以在加载工作簿后使用 create_sheet 来获取其中的新工作表,但我陷入了如何使用 pandas.DataFrame 编辑该确切工作表的困境。我创建。

最佳答案

您应该创建一个 ExcelWriter 对象并使用它来保存数据帧。您需要调用其 save() 方法才能实际保存 Excel 文件。

import pandas as pd

ew = pd.ExcelWriter('a.xlsx')
pd.DataFrame({'a':[1,2]}).to_excel(ew, sheet_name='a')
pd.DataFrame({'a':[1,2]}).to_excel(ew, sheet_name='b')
ew.save() # don't forget to call save() or the excel file won't be created

关于python - 使用 pandas 将工作表添加到现有 Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34452094/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com