我正在嘗試為我的 df 中不同列中的每個不同值生成多個單獨的資料透視表(就像每個過濾的不同資料透視表)。在實際檔案中,有數百個 R1,因此試圖找到一種方法以某種方式回圈該檔案以分別生成它們。
如果可能的話,有沒有辦法將每個樞軸發送到一個單獨的 excel 檔案
import pandas as pd
df=pd.DataFrame({'Employee':['1','2','3','4','5','6','7','8','9','10','11','12', '13', '14', '15', '16', '17', '18', '19', '20'],
'R1': ['mike', 'mike', 'mike', 'mike', 'mike', 'mike', 'mike', 'mike', 'stacey' , 'stacey', 'stacey', 'stacey', 'stacey', 'stacey', 'stacey', 'stacey', 'stacey', 'stacey', 'stacey', 'stacey'],
'R2':['bill', 'bill', 'bill', 'bill', 'bill', 'chris', 'chris', 'chris', 'jill', 'jill', 'jill', 'tom', 'tom', 'tom', 'tom', 'pete', 'pete', 'pete', 'pete', 'pete']})
df
因此,基本上 1 個 excel 檔案用于 mike 的世界,其中有 R2 的員工計數和 1 excel 的 stacey 的世界,有 R2 的員工計數(但在實際資料中,這將針對數百個 R1 完成)
謝謝!
邁克擅長

斯泰西擅長

uj5u.com熱心網友回復:
雖然在寫入作業表之前可能有更漂亮的方法來處理資料幀,但這為我提供了您正在尋找的結果。它應該與任意數量的“R1”一起擴展,因為“unique()”提供了 R1 中唯一名稱的串列。然后將其分解為您需要的變數并將其寫入給定檔案路徑上的作業表。
import pandas as pd
data_jobs2=pd.DataFrame({'Employee':['1','2','3','4','5','6','7','8','9','10','11','12', '13', '14', '15', '16', '17', '18', '19', '20'],
'L2Name': ['mike', 'mike', 'mike', 'mike', 'mike', 'mike', 'mike', 'mike', 'stacey' , 'stacey', 'stacey', 'stacey', 'stacey', 'stacey', 'stacey', 'stacey', 'stacey', 'stacey', 'stacey', 'stacey'],
'L3Name':['bill', 'bill', 'bill', 'bill', 'bill', 'chris', 'chris', 'chris', 'jill', 'jill', 'jill', 'tom', 'tom', 'tom', 'tom', 'pete', 'pete', 'pete', 'pete', 'pete']})
values = data_jobs2['L2Name'].unique()
filepath = 'Your\File\Path\Here\File_name.xlsx'
writer = pd.ExcelWriter(filepath, engine='openpyxl')
for i in values:
series = data_jobs2[data_jobs2['L2Name'] == i].groupby(['L2Name','L3Name'])['Employee'].count().to_frame().reset_index()
df_to_write = series.pivot(index = 'L2Name', columns='L3Name', values = 'Employee').reset_index().replace({i : 'Count of Employee'}).rename(columns={'L2Name':''}).set_index('')
df_to_write['Grand Total'] = df_to_write.sum(1)
df_to_write.to_excel(writer, sheet_name=i)
display(df_to_write)
display(series)
writer.save()
writer.close()
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/432756.html
標籤:Python 循环 枢 熊猫.excelwriter
上一篇:回圈遍歷串列并向新資料框列添加值
下一篇:將第一次出現的x附加到串列并中斷回圈。但是,如果y出現在x之前,則附加第一次出現的y,然后忽略y直到第一次出現x
