尝试从 pandas 数据框中获取小计
Trying to get subtotals from a pandas dataframe
我正在数据框中的两列之间进行交叉制表。这是列中的示例:
column_1 column_2
A -8
B 95
A -93
D 11
C -62
D -14
A -55
C 66
B 76
D -49
我正在寻找 returns 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 ... ##
总和列包含每行中布尔值的总和,而不是四个字母中每个字母的小计。我曾经看到一个布尔值 table 可以用于计算,但我很确定通过更改 pandas.crosstab()
命令可以实现所需的输出。
我很乐意从你那里得到一些想法和想法。
谢谢。
如果您只是想要 column_1
(A、B、C、D)中各个类别的总数,也许 groupby 和求和会有所帮助!您可以在包含类别的列上调用 groupby
,然后对结果调用 sum,如下所示:
df.groupby('column1').sum()
我正在数据框中的两列之间进行交叉制表。这是列中的示例:
column_1 column_2
A -8
B 95
A -93
D 11
C -62
D -14
A -55
C 66
B 76
D -49
我正在寻找 returns 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 ... ##
总和列包含每行中布尔值的总和,而不是四个字母中每个字母的小计。我曾经看到一个布尔值 table 可以用于计算,但我很确定通过更改 pandas.crosstab()
命令可以实现所需的输出。
我很乐意从你那里得到一些想法和想法。
谢谢。
如果您只是想要 column_1
(A、B、C、D)中各个类别的总数,也许 groupby 和求和会有所帮助!您可以在包含类别的列上调用 groupby
,然后对结果调用 sum,如下所示:
df.groupby('column1').sum()