pandasGroupBy的SUMIFS风格计算
SUMIFS style calculation of pandas GroupBy
我正在尝试将两列相互相乘的结果除以我为 groupby 获得的总计,它基于 SUMIFS 样式条件匹配。
我正常分组
df.groupby(["Month","Category","Currency"])["Amount"].sum()
我如何尊重来自这个 groupby 的值,并使用每个相应的数字作为主数据帧计算的除法分母(大致写在下面)。
Month Category Currency Amount
2000-01-31 Deposit-CA FC -8994788.78
GBP -791962507.93 USD -31808347.06
2001-02-28 Deposit-SA FC -10496460.50
KWD -1064463148.00
2002-08-31 Corporate KWD 343753.63
比如我要计算
df["Profit_Rate"]*df["Amount"]/groupby amount sum for each case conditions matching
使用 excel 中的 SUMIF,您可以提供数据范围和条件,您希望通过文本发送这些条件以获得可用于计算的总数。
我的问题是如何从 groupby 访问这些总数并将它们用作另一个方程式中的数字。例如,在我的例子中,我试图根据多个因素计算百分比收益率。
您可能希望转换总和:
totals = df.groupby(["Month","Category","Currency"])["Amount"].transform('sum')
那你可以做
df["Profit_Rate"] * df["Amount"] / totals
我正在尝试将两列相互相乘的结果除以我为 groupby 获得的总计,它基于 SUMIFS 样式条件匹配。
我正常分组
df.groupby(["Month","Category","Currency"])["Amount"].sum()
我如何尊重来自这个 groupby 的值,并使用每个相应的数字作为主数据帧计算的除法分母(大致写在下面)。
Month Category Currency Amount
2000-01-31 Deposit-CA FC -8994788.78
GBP -791962507.93 USD -31808347.06
2001-02-28 Deposit-SA FC -10496460.50
KWD -1064463148.00
2002-08-31 Corporate KWD 343753.63
比如我要计算
df["Profit_Rate"]*df["Amount"]/groupby amount sum for each case conditions matching
使用 excel 中的 SUMIF,您可以提供数据范围和条件,您希望通过文本发送这些条件以获得可用于计算的总数。
我的问题是如何从 groupby 访问这些总数并将它们用作另一个方程式中的数字。例如,在我的例子中,我试图根据多个因素计算百分比收益率。
您可能希望转换总和:
totals = df.groupby(["Month","Category","Currency"])["Amount"].transform('sum')
那你可以做
df["Profit_Rate"] * df["Amount"] / totals