[英]Trying to code a Python equivalent of SUMIFs feature in Excel
我正在嘗試使用 Python 從頭開始重寫 a.xlsx 文件。 excel 表有 99 行和 11 列。 我已經生成了 99 行 x 8 列,我目前正在生成 99 行 x 第 9 列。 第 9 列是根據 excel 中的 SUM-IFS 公式計算的。 它考慮了第 2、4 和 7 列。
第 2 列具有數值 int 值。 第 4 列具有三個字母的機場代碼值,例如紐約市的 NYC 第 7 列也具有三個字母的機場代碼值,例如德里的 DEL。
第 9 列單元格的 sum-if 公式SUMIFS(B:B, D:D, D2, G:G, G2)
因此,它將第 2 列中對應城市的數值相加。 4和col。 7.如果col中的一對城市只出現一次。 4和col。 7 然后沒有什么可以求和,col.9 中的單元格 = col 中單元格的 int 值。 2 但是,如果在 col 中多次出現這對城市。 4和col。 7 然后是 col 中的相應值。 2 被求和,這成為 col 中單元格的值。 9
例子:
在這個例子中,上校。 2 是銷售,col.4 是起源城市,col。 7 是目的地城市和上校。 圖9是利用=SUMIFS(B:B,C:C,C2,D:D,D2)
的結果
我正在嘗試在我擁有的大型數據集上使用 python 計算第 9 列。 現在,我已經能夠創建一個字典列表,其中我將鍵設置為 origin_city-destination_city,並將值設置為 col 的 integer 值。 2.字典列表有99行,如excel文件,因此excel文件的每一行都表示為一個字典。 在打印字典時,它是這樣的:
{'YTO-YVR': 570}
{'YVR-YTO': 542}
{'YTO-YYC': 420}
{'YYT-YTO': 32}
{'YWG-YYC': 115}
我一直在考慮是否可以遍歷字典列表並創建它的 SUMIFS 版本 --- 導致列表中有 99 個字典,每個字典都有 sumif 值。 在此之后,我必須將所有這些值寫入 excel 文件中的列。
我希望這里有人可以提供幫助:! 非常感謝你:)
您可以將 pandas 的groupby
與transform
一起使用:
import pandas as pd
df = pd.DataFrame({'Sales': [100,110,200,300,150,200,100],
'Origin': ['YYZ','YEA','CDG','YYZ','YEA','YVR','YEA'],
'Dest': ['DEL','NYC','YUL','DEL','YTO','HKG','NYC']})
df['Result'] = df.groupby(['Origin','Dest']).Sales.transform('sum')
結果:
Sales Origin Dest Result
0 100 YYZ DEL 400
1 110 YEA NYC 210
2 200 CDG YUL 200
3 300 YYZ DEL 400
4 150 YEA YTO 150
5 200 YVR HKG 200
6 100 YEA NYC 210
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.