如何将总计列添加到表格末尾?

问题描述 投票:0回答:1

我对 python 比较陌生,从同事那里继承了一段代码,但我似乎无法运行。这个想法是将总计行和列添加到数据框中,但是该列的行不起作用并给出多个错误(我看到很多“回溯(最近一次调用最后)”):

csmposting = create_csm_table(csm) csmposting['TOTAL'] = csmposting.sum(axis=1) ---->This line causes the error csmposting.loc['TOTAL'] = csmposting.sum(axis=0).astype(int)

当我在没有该行的情况下运行它时,我得到(我已删除列标题):

Unit1   779 285 16  2   3
Unit2   290 20  3   3   0
Unit3   0   0   3   7   0
Unit4   547 97  8   10  0
TOTAL   1616    402 30  22  3

我尝试将该行更改为:

csmposting.loc['TOTAL1'] = csmposting.sum(axis=1) 
这最终只会将其添加为表格底部的另一行,并为所有数字添加小数位:

Unit1   779.0   285.0   16.0    2.0 3.0
Unit2   290.0   20.0    3.0 3.0 0.0
Unit3   0.0 0.0 3.0 7.0 0.0
Unit4   547.0   97.0    8.0 10.0    0.0
TOTAL1  NaN NaN NaN NaN NaN
TOTAL   1616.0  402.0   30.0    22.0    3.0

任何人都可以建议如何显示总计列并保持数字格式相同吗?

谢谢!

python sum
1个回答
0
投票

复制粘贴代码的方式,

csmposting = create_csm_table(csm) csmposting['TOTAL'] = 
csmposting.sum(axis=1) ---->This line causes the error  
csmposting.loc['TOTAL'] = csmposting.sum(axis=0).astype(int)

同一行似乎有两个命令。

您能否确认

TOTAL
计算实际上在新行上,如下所示:

csmposting = create_csm_table(csm)
csmposting['TOTAL'] = csmposting.sum(axis=1)  # This line causes the error  
csmposting.loc['TOTAL'] = csmposting.sum(axis=0).astype(int)

除此之外,我没有发现代码有任何问题。

这是使用 Pandas 的示例代码,它重复了两个 TOTAL 计算,并且似乎工作正常。

import pandas as pd

df = pd.DataFrame(
    [[779, 285, 16, 2, 3],
     [290, 20, 3, 3, 0],
     [0, 0, 3, 7, 0],
     [547, 97, 8, 10, 0]],
    index=['Unit1', 'Unit2', 'Unit3', 'Unit4'],
    columns=['c1', 'c2', 'c3', 'c4', 'c5']
)
print(df)  # similar to your sample data in `csmposting`
#         c1   c2  c3  c4  c5
# Unit1  779  285  16   2   3
# Unit2  290   20   3   3   0
# Unit3    0    0   3   7   0
# Unit4  547   97   8  10   0

df['TOTAL'] = df.sum(axis=1)
df.loc['TOTAL'] = df.sum(axis=0)
print(df)
#          c1   c2  c3  c4  c5  TOTAL
# Unit1   779  285  16   2   3   2170
# Unit2   290   20   3   3   0    632
# Unit3     0    0   3   7   0     20
# Unit4   547   97   8  10   0   1324
# TOTAL  3232  804  60  44   6   8292

请告诉我们更多您遇到的错误。 看看也可能有帮助

csmposting.index
csmposting.columns
csmposting.isna()
检查缺失值。

© www.soinside.com 2019 - 2024. All rights reserved.