Как сделать промежуточный итог, используя таблицу в python - PullRequest
1 голос
/ 08 мая 2020

Я использую табуляцию в своей программе, чтобы получить таблицу решений, как показано ниже. Чего я хочу достичь, чтобы получить промежуточный итог как на стороне столбца, так и на стороне строки. Возможно ли это в python

+-------+----------+---------+----------+---------+----------+

| Env   |   xsmall |   small |   medium |   large |   xlarge |

|-------+----------+---------+----------+---------+----------|

| dev   |        2 |       4 |        6 |       1 |        2 |

| prod  |        1 |       9 |        4 |       0 |        0 |

| qa    |        0 |      10 |        1 |       0 |        1 |

| uat   |        0 |       0 |        2 |       0 |        0 |

+-------+----------+---------+----------+---------+----------+

Я хочу получить промежуточный итог, как в этой строке 2 + 4 + 6 + 1 + 2 = 15 и так далее в столбце 2 + 1 + 0 + 0 = 3

+-------+----------+---------+----------+---------+----------+---------

| Env   |   xsmall |   small |   medium |   large |   xlarge |Sub Total

|-------+----------+---------+----------+---------+----------+----------

| dev   |        2 |       4 |        6 |       1 |        2 |15

| prod  |        1 |       9 |        4 |       0 |        0 |14

| qa    |        0 |      10 |        1 |       0 |        1 |12

| uat   |        0 |       0 |        2 |       0 |        0 |2

+-------+----------+---------+----------+---------+----------+--------
|SubTotal|        3 |       23|        13|       1 |        3|43

Будем признательны за вашу помощь!

1 Ответ

0 голосов
/ 08 мая 2020

Вы можете добавить строку с append и столбец с assign:

df = df.set_index('Env')
new_df = (df.append(df.sum().rename('SubTotal'))
            .assign(SubTotal=lambda x: x.sum(1))
            .reset_index()
         )

Вывод:

        Env  xsmall  small  medium  large  xlarge  SubTotal
0       dev       2      4       6      1       2        15
1      prod       1      9       4      0       0        14
2        qa       0     10       1      0       1        12
3       uat       0      0       2      0       0         2
4  SubTotal       3     23      13      1       3        43
...