Как получить столбец Итого внизу - PullRequest
1 голос
/ 06 августа 2020

Я использую приведенный ниже код.

import pandas as pd

User_info = {
    1: ["Rita","delhi",47,47,38],
    2: ["Sita","DElhi",49,28,40],
    3: ["geeta","Mumbai",38,50,38],
    4: ["Geeta","MUMBAI",28,26,44],
    5: ["GEETA","CHENNAI",30,36,36],
    6: ["SITA","chennai",37,28,34]
}

Output = pd.DataFrame([
        [name.upper(), location.upper(), w1*1.609, w2*1.609, w3*1.609]
        for name, location, w1, w2, w3 in User_info.values()
    ], columns=['Name', 'Location', 'W1', 'W2', 'W3'])

updated = Output.append(df.sum().rename('Total')).assign(Total=lambda d: d.sum(0))

updated

Вывод

enter image description here

I Would like to see the output like below

введите описание изображения здесь

С уважением,

Бхарат Викас

1 Ответ

2 голосов
/ 06 августа 2020

Идея - выбрать только числовые c столбцы по DataFrame.select_dtypes, а затем добавить пустые значения для DataFrame.reindex:

import numpy as np

updated = (Output.append(Output.select_dtypes(np.number)
                               .sum()
                               .reindex(Output.columns, fill_value='')
                               .rename('Total'))
                 .assign(Total=lambda d: d.sum(axis=1)))

print (updated)
        Name Location       W1       W2       W3     Total
0       RITA    DELHI   75.623   75.623   61.142   212.388
1       SITA    DELHI   78.841   45.052   64.360   188.253
2      GEETA   MUMBAI   61.142   80.450   61.142   202.734
3      GEETA   MUMBAI   45.052   41.834   70.796   157.682
4      GEETA  CHENNAI   48.270   57.924   57.924   164.118
5       SITA  CHENNAI   59.533   45.052   54.706   159.291
Total                  368.461  345.935  370.070  1084.466
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...