试图从熊猫数据框中获取小计

Posted

技术标签:

【中文标题】试图从熊猫数据框中获取小计【英文标题】:Trying to get subtotals from a pandas dataframe 【发布时间】:2022-01-06 16:11:22 【问题描述】:

我正在数据框中的两列之间进行交叉制表。以下是列中的示例:

 column_1    column_2

    A          -8
    B          95
    A         -93
    D          11
    C         -62
    D         -14
    A         -55
    C          66
    B          76
    D         -49

我正在寻找返回 A、B、C 和 D 小计的代码。例如,对于 A,小计将为 -156 (-8-93-55 = -156)。

我尝试使用pandas.crosstab() 函数来做到这一点:

pandas.crosstab(df[column_1], df[column_2], margins=True, margins_name=column_1).Total

这是一个输出示例:

     -271  -263  -241  -223  -221  -212  -207  -201 ...   sum_column
A      1     0     1     0     0     1     0     0  ...      ##
B      0     0     0     1     0     0     0     0  ...      ##
C      0     0     0     0     1     0     0     1  ...      ##
D      0     1     0     0     0     0     1     0  ...      ##

总和列由每行中布尔值的总和组成,而不是四个字母中每个字母的小计。我曾经看到可以使用布尔表进行计算,但我很确定通过更改 pandas.crosstab() 命令可以获得所需的输出。

我很乐意从你那里得到一些想法和想法。

谢谢。

【问题讨论】:

【参考方案1】:

如果您只是想要column_1(A、B、C、D)中各个类别的总数,也许groupby 和求和可能会有所帮助!您可以在包含类别的列上调用 groupby,然后在结果上调用 sum,如下所示:

df.groupby('column1').sum()

【讨论】:

以上是关于试图从熊猫数据框中获取小计的主要内容,如果未能解决你的问题,请参考以下文章

熊猫数据透视表中的小计

使用数据透视表(熊猫)中的小计行时保留索引部分(不同的列)

在具有多个因子(字符)变量的数据框中聚合(小计)

无法从 Magento 的购物车中获取小计?

Linq:获取具有多个嵌套组的内部对象的小计

VBA Excel小计动态范围不起作用