繁体   English   中英

将所有信息放入一个工作表(excel,python)

[英]Put all info into one worksheet(excel, 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中只会出现最后一个账号; 一个帐户是一排。 如何在一个工作表中包含所有行? 我只是不知道如何用谷歌搜索这个问题; 伤心

pandas to_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')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM