【问题标题】: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() 命令可以获得所需的输出。

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

谢谢。

【问题讨论】:

    标签: pandas crosstab subtotal


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-20
      • 1970-01-01
      • 2014-06-04
      • 2022-01-11
      • 2021-01-19
      • 2021-07-22
      • 1970-01-01
      相关资源
      最近更新 更多