【问题标题】:Python Program to Sum of each Row and each Column of a MatrixPython程序对矩阵的每一行和每一列求和
【发布时间】:2021-10-15 12:08:14
【问题描述】:

我想创建一个 Python 脚本来计算 x 值和 y 值(如矩阵)。 “budget.txt”文件内容:

Budget Jan Feb Mar Apr May Jun Sum
Milk      10  20   31   52   7      11
Eggs     1    5    1     16    4      58
Bread    22  36  17    8   21    16
Butter    4    5    8    11   36     2
Total

脚本将计算budget.txt 文件并在“Sum”列和“Total”行中显示结果。 这是我的代码:

import sys

budget_file = sys.arvg[1]
df = open(budget_file).read()
print(df)

输出:我可以读取文件。现在我的问题是如何对行和列的值求和?

【问题讨论】:

  • @Aktar 你能解释一下“脚本将计算budget.txt 文件并在“Sum”列和“Total”行中显示结果是什么意思。你想要的结果到底是什么?对每一行求和并在 Sum 列中显示结果? Total 显示什么?只是所有值的总和?
  • 您好 Omri,我希望脚本计算每一行的值,并在“总和”列部分(如 X)和每一列值中显示结果,并在“总计”行部分中显示结果。

标签: python python-3.x


【解决方案1】:

鉴于您的数据框,我将分两步进行计算:

  1. 计算数据帧每一行的总和(见How To Sum DataFrame Rows
  2. 计算每列的总和

给定以下数据框:

        Budget  Jan     Feb     Mar     Apr     May     Jun
0   Milk    10  20  31  52  7   11
1   Eggs    1   5   1   16  4   58
2   Bread   22  36  17  8   21  16
3   Butter  4   5   8   11  36  2

计算数据帧各行的总和

#list  columns to sum across
df['Sum'] = df[list(df.columns)[1:]].sum(axis=1)

这会产生以下df:

    Budget  Jan     Feb     Mar     Apr     May     Jun     Sum
0   Milk    10.0    20.0    31.0    52.0    7.0     11.0    131.0
1   Eggs    1.0     5.0     1.0     16.0    4.0     58.0    85.0
2   Bread   22.0    36.0    17.0    8.0     21.0    16.0    120.0
3   Butter  4.0     5.0     8.0     11.0    36.0    2.0     66.0

用所有列的总和添加一行:

df.append(pd.Series(df.sum(),name='Total'))  

这将产生如下数据框:

    Budget  Jan     Feb     Mar     Apr     May     Jun     Sum
0   Milk    10  20  31  52  7   11  262.0
1   Eggs    1   5   1   16  4   58  170.0
2   Bread   22  36  17  8   21  16  240.0
3   Butter  4   5   8   11  36  2   132.0
Total   MilkEggsBreadButter     37  66  57  87  68  87  804.0  

如果低于预算的字符串总和很麻烦,您可以将该特定单元格重置为空字符串。

【讨论】:

    猜你喜欢
    • 2017-07-25
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    • 2015-01-15
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多