我想從一個資料框中創建一個表,其中包含每個業務的小計、每個業務型別的總計以及多個值列的總和。長期是基于攝取的 Excel 表創建一個選擇工具,用于我帶來比較月份摘要的任何一個月的摘要(例如,BA3 中的礦物專案 26 是否在下個月消失了),但我認為最好保存另一個問題。
目前,我無法弄清楚如何匯總資料。
我在 Pandas 中有一個資料框,其中包含以下內容:
Business | Business Type | ID | Value-Q1 | Value-Q2 | Value-Q3 | Value-Q4 | Value-FY |
--------- --------------- ---- ---------- ---------- ---------- ---------- ----------
BA1 | Widgets | 1 | 7 | 0 | 0 | 8 | 15 |
BA1 | Widgets | 2 | 7 | 0 | 0 | 8 | 15 |
BA1 | Cups | 3 | 9 | 10 | 0 | 0 | 19 |
BA1 | Cups | 4 | 9 | 10 | 0 | 0 | 19 |
BA1 | Cups | 5 | 9 | 10 | 0 | 0 | 19 |
BA1 | Snorkels | 6 | 0 | 0 | 8 | 8 | 16 |
BA1 | Snorkels | 7 | 0 | 0 | 8 | 8 | 16 |
BA1 | Snorkels | 8 | 0 | 0 | 8 | 8 | 16 |
BA2 | Widgets | 9 | 100 | 0 | 7 | 0 | 107 |
BA2 | Widgets | 10 | 100 | 0 | 7 | 0 | 107 |
BA2 | Widgets | 11 | 100 | 0 | 7 | 0 | 107 |
BA2 | Widgets | 12 | 100 | 0 | 7 | 0 | 107 |
BA2 | Bread | 13 | 0 | 0 | 0 | 1 | 1 |
BA2 | Bread | 14 | 0 | 0 | 0 | 1 | 1 |
BA2 | Bread | 15 | 0 | 0 | 0 | 1 | 1 |
BA2 | Bread | 16 | 0 | 0 | 0 | 1 | 1 |
BA2 | Cat Food | 17 | 504 | 0 | 0 | 500 | 1004 |
BA2 | Cat Food | 18 | 504 | 0 | 0 | 500 | 1004 |
BA2 | Cat Food | 19 | 504 | 0 | 0 | 500 | 1004 |
BA2 | Cat Food | 20 | 504 | 0 | 0 | 500 | 1004 |
BA2 | Cat Food | 21 | 504 | 0 | 0 | 500 | 1004 |
BA3 | Gravel | 22 | 7 | 7 | 7 | 7 | 28 |
BA3 | Gravel | 23 | 7 | 7 | 7 | 7 | 28 |
BA3 | Gravel | 24 | 7 | 7 | 7 | 7 | 28 |
BA3 | Rocks | 25 | 3 | 2 | 0 | 0 | 5 |
BA3 | Minerals | 26 | 1 | 1 | 0 | 1 | 3 |
BA3 | Minerals | 27 | 1 | 1 | 0 | 1 | 3 |
BA4 | Widgets | 28 | 6 | 4 | 0 | 0 | 10 |
BA4 | Widgets | 29 | 6 | 4 | 0 | 0 | 10 |
BA4 | Widgets | 30 | 6 | 4 | 0 | 0 | 10 |
BA4 | Widgets | 31 | 6 | 4 | 0 | 0 | 10 |
BA4 | Widgets | 32 | 6 | 4 | 0 | 0 | 10 |
BA4 | Something | 33 | 1000 | 0 | 0 | 2 | 1002 |
BA5 | Bonbons | 34 | 60 | 40 | 10 | 0 | 110 |
BA5 | Bonbons | 35 | 60 | 40 | 10 | 0 | 110 |
BA5 | Gummy Bears | 36 | 7 | 0 | 0 | 9 | 16 |
(假設每個 ID 也有不同的值)
我的目標是對資料進行切片以獲得給定業務型別的總出現次數(例如,BA 1 有 2 個小部件、3 個杯子和 3 個呼吸管,每個都有一個唯一的 ID)以及總值:
Occurrence | Q1 Sum | Q2 Sum | Q3 Sum | Q4 Sum | FY Sum |
BA 1 8 | 41 | 30 | 24 | 40 | 135 |
Widgets 2 | 14 | 0 | 0 | 16 | 30 |
Cups 3 | 27 | 30 | 0 | 0 | 57 |
Snorkels 3 | 0 | 0 | 24 | 24 | 48 |
BA 2 Subtotal of BA2 items below
Widgets Repeat Above
Bread Repeat Above
Cat Food Repeat Above
我有更多的列反映 Q1-FY 列與每行的其他欄位(例如 Value 2 Q1-FY),我想包括在摘要中,但我想我可以重復用于獲取當前的任何程序價值削減。
我有一個獨特的企業串列 = [BA1, BA2, BA3, BA4, BA5] 和一個獨特的商業型別串列 [小部件、杯子、呼吸管、面包、貓糧、礫石、巖石、礦物、東西、糖果、軟糖Bears] 最后是 Values 值串列 = [Value-Q1, Value-Q2, Value-Q3, Value-Q4, Value-FY]
我試著從串列中做一個 for 回圈
也許我需要讓資料框值在他們自己的行上?我至少嘗試了以下 FY 的總和
for b in businesses
for bt in business types
df_sums = df.loc['Business' == b, 'Business Type' == bt, 'Value-FY'].sum()
但它并沒有給我我所希望的
我確信有更好的方法至少可以獲取總計的值(我設法將每個企業的 FY 值放入字典中),但不是每個企業型別的每個企業的總計(每個企業也是唯一的)。
如果有人有任何建議或可以指出我正確的方向,我將不勝感激!
uj5u.com熱心網友回復:
您應該嘗試為此使用 group_by 方法。Group_by 允許多個分組選項。我附上了該方法檔案的鏈接。https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.groupby.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/527651.html
上一篇:我希望VBA在不凍結Excel電子表格串列的情況下打開以更新每個電子表格中的一個單元格
下一篇:查找所有主題標簽
