我希望这个问题不是微不足道的。我一直在寻找答案在其他线程没有运气。
我一直在尝试分析一个用groupby分隔的数据集,在这个数据集中,我添加了一列,其中包含变量“profits”的累积和(cumsum)。
现在,为了比较不同类别的结果,我想将累积利润值“归一化”,将其除以其组中的最大值。
我一直在尝试使用数学和lambda函数,但我无法找到一种方法来显示所需的结果。
这里是我的部分代码的输出
us_discount = us.groupby(['Sub-Category', 'Discount'], as_index = False)['Profit'].sum()
us_discount['Cumulative Profit'] = us_discount.groupby('Sub-Category', as_index = False)['Profit'].cumsum()
print(us_discount.groupby('Sub-Category')['Cumulative Profit'].max())
us_discount['test'] = us_discount['Cumulative Profit'] / us_discount.groupby('Sub-Category')['Cumulative Profit'].max()
us_discount.head()
结果如下:
正如你所看到的,最大值实际上是正确计算的,但是我不能把它们作为变量“test”添加进去。我希望打印输出是“test”列的声音。
由于我目前正在学习pandas,我想(如果可能的话)找到一个使用库的解决方案,如果可能的话,不使用lambda函数。我知道我可以使用矩阵或拟合来解决问题。
1条答案
按热度按时间q5lcpyga1#
这是一个方法来做你问:
us_discount
的输入示例:输出: