簡體   English   中英

將“for”循環的輸出寫入 PYTHON 中的 excel

[英]Write the output from "for" loop to excel in PYTHON

我有以下代碼:

my_list = ["US", "IT", "ES", "NL"]
for i in my_list:
    A = sum_products_by_country(world_level,i)
    df = pd.DataFrame({'value':A})
    Descending = df.sort_values( by='value', ascending = 0 )
    Top_5 = Descending[0:5]
    print(Top_5)

“sum_products_by_country”是一個創建的函數,它以數據框(在我的例子中名為“world_level”)和國家名稱作為參數,並按產品返回該國家/地區的總和。 使用這個循環,我可以找到 my_list 中每個國家/地區的前 5 個產品和總和。 這是此循環的輸出:

US          value
Product  


B          1492

H          455

BB         351

C          119

F          117

IT          value
Product


P           346
U           331

A           379

Q           190

D          1389

ES         value
Product 


P          3046

U3         331

A          379

Q          1390

DD         10389

NL         value
Product 


P          3465

U          3313

AA         379

2Q         190

D          189

我想使用以下方法在 excel 表中寫入此輸出:

writer = pd.ExcelWriter('top products.xlsx', engine='xlsxwriter')
Top_5.to_excel(writer, sheet_name='Sheet1')
writer.save()

你能告訴我應該把上面的代碼放在哪里以獲得所需的excel文檔嗎? 還有一種方法可以在我的 excel 文檔的頂部只獲取一次列名(國家、產品、值),而不是分別針對每個國家/地區嗎? 所以我想要這樣的東西:

 Country   Product   value

  US        
           B          1492
           H          455
           BB         351
           C          119
           F          117

  IT          

           P           346
           U           331
           A           379
           Q           190
           D          1389

  ES         

          P          3046
          U3         331
          A          379
          Q          1390
          DD         10389

  NL         

          P          3465
          U          3313
          AA         379
          2Q         190
          D          189

謝謝

該腳本應該可以幫助您:

#Create workbook object
wb = openpyxl.Workbook()
sheet = wb.get_active_sheet()
sheet.title='Products by country'

#Generate data

#Add titles in the first row of each column
sheet.cell(row=1, column=1).value='country'
sheet.cell(row=1, column=2).value='product'
sheet.cell(row=1, column=3).value='value'


#Loop to set the value of each cell
for i in range(0, len(Country)):
sheet.cell(row=i+2, column=1).value=Country[i]#with country being your array full of country names. If you have 5 values for one country I would advise just having the country name in there five times.
sheet.cell(row=i+2, column=2).value=Product[i]#array with products
sheet.cell(row=i+2, column=3).value=Values[i]#array with values

#Finally, save the file and give it a name
wb.save('NameFile.xlsx')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM