为了账号安全,请及时绑定邮箱和手机立即绑定

将 groupby 迭代循环到 Excel

将 groupby 迭代循环到 Excel

扬帆大鱼 2023-07-18 13:51:40
我有一个数据框,详细说明了商店位置和收入的信息。我想迭代此信息,但按位置和机器编号对其进行细分,然后将此信息导出到 Excel。我当前的数据框看起来像这样  Location     Machine Number Net Funds Net Revenue0 Location 1   123456         123       761 Location 1   325462         869       5222 Location 1   569183         896       2343 Location 2   129756         535       542 4 Location 2   234515         986       516 5 Location 2   097019         236       512 6 Location 3   129865         976       251理想情况下,输出看起来像这样Machine Number    Net Funds     Net RevenueLocation 1123456            123           76325462            869           522269183            896           234Machine Number    Net Funds     Net RevenueLocation 2129756            535           542234515            986           516097019            236           512Machine Number    Net Funds     Net RevenueLocation 3129865            976           251虽然我已经能够将这些数据迭代为我喜欢使用的格式for name, group in grouped:    print(name)    print(group)我无法将其调用为 xlsxwriter。任何指导将不胜感激。
查看完整描述

1 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

为此,您可以使用to_csv创建 csv 字符串,然后调整列标题。您可以在 Excel 中打开 CSV 文件。


试试这个代码:


import pandas as pd


cols = ['Location','Machine Number','Net Funds','Net Revenue']

lst = [

['Location 1','123456',123, 76],

['Location 1','325462',869,522],

['Location 1','569183',896,234],

['Location 2','129756',535,542],

['Location 2','234515',986,516],

['Location 2','097019',236,512],

['Location 3','129865',976,251]]


df = pd.DataFrame(lst, columns=cols)


loclst = df['Location'].unique().tolist()


cc = ""

for loc in loclst:

   dfl = df[df['Location']==loc][cols[1:]]

   cc += ','.join(cols[1:]) + '\n' + loc+',,\n' + dfl.to_csv(index=False, header=False)


print(cc)

with open('out.csv','w') as f:

   f.write(cc.replace('\r\n','\n'))

   

输出(out.csv)


Machine Number,Net Funds,Net Revenue

Location 1,,

123456,123,76

325462,869,522

569183,896,234

Machine Number,Net Funds,Net Revenue

Location 2,,

129756,535,542

234515,986,516

097019,236,512

Machine Number,Net Funds,Net Revenue

Location 3,,

129865,976,251


查看完整回答
反对 回复 2023-07-18
  • 1 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信