试图从pandas数据帧中获取小计



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

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  ...      ##

sum列由每行布尔值的和组成,而不是四个字母中每一个的小计。我曾经看到布尔表可以用于计算,但我非常确信,通过更改pandas.crosstab()命令,可以实现所需的输出。

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

谢谢。

如果您只想按column_1(A、B、C、d(中的各个类别计算总数,那么分组和求和可能会有所帮助!您可以用类别调用列上的groupby,然后对结果调用sum,如下所示:

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

相关内容

  • 没有找到相关文章

最新更新