【发布时间】: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() 命令可以获得所需的输出。
我很乐意从你那里得到一些想法和想法。
谢谢。
【问题讨论】: