将所有信息放在一个工作表中(excel、python)

2024-05-13 06:02:32 发布

您现在位置:Python中文网/ 问答频道 /正文

# Conbine all the accounts in one sheet
writer = pd.ExcelWriter('toupi-all.xlsx')
for y in duplicate:
    print(y)
    filterYTD=YTD[(YTD["LOGIN"]==y)]
    combine=filterYTD.groupby(["LOGIN"]["EQUITY_CHANGE","TRUE_PROFIT","SWAP","total_cost","cost_to_loss","WITHDRAW",'DEPOSIT',"EMAIL"].sum().sort_values(["EQUITY_CHANGE"],ascending=False).round(2)
    combine=combine.merge(intra,on='LOGIN',how='left')
    combine=combine.merge(tags,on="LOGIN",how='left')
    combine.to_excel(writer)
writer.save()
os.startfile('toupi-all.xlsx')

逻辑不正确,;excel中将仅显示最后一个帐户;一个帐户是一行。如何将所有行放在一张工作表中?我只是不知道如何用谷歌搜索这个问题;悲哀的


Tags: toinonloginmergeallxlsxchange
1条回答
网友
1楼 · 发布于 2024-05-13 06:02:32

pandasto_excel接受一个参数startrow-如果希望所有数据都在同一张工作表上,则需要将其包含在循环中,以防止每次迭代过度写入上一次迭代的数据。您还可以使用header参数来防止在每次迭代中将列添加到工作表中

大概是这样的:

writer = pd.ExcelWriter('toupi-all.xlsx')
startrow = 0
for y in duplicate:
    print(y)
    filterYTD=YTD[(YTD["LOGIN"]==y)]
    combine=filterYTD.groupby(["LOGIN"]["EQUITY_CHANGE","TRUE_PROFIT","SWAP","total_cost","cost_to_loss","WITHDRAW",'DEPOSIT',"EMAIL"].sum().sort_values(["EQUITY_CHANGE"],ascending=False).round(2)
    combine=combine.merge(intra,on='LOGIN',how='left')
    combine=combine.merge(tags,on="LOGIN",how='left')
    combine.to_excel(writer, startrow=startrow, header=not bool(startrow))
    startrow += len(combine)

writer.save()
os.startfile('toupi-all.xlsx')

相关问题 更多 >