我的sum函数不对某些列的值求和

时间:2019-05-15 06:47:39

标签: python excel pandas dataframe

所以我有一个数据框,其中包含一些列,这些列包含计算所得的值或来自输入的值:

Data = {'name':  ['a', 'b'],
        'number1': [5, 3],
        'number2': [3, 2]
        }
df = pd.DataFrame(Data, columns = ['name','number1', 'number2'])

然后我像这样写我的全部函数(不要介意现在添加名称):

df.loc['Grand Total']=df.sum()

如果我在添加Grand total行之后计算出更多的列,它们也将获得Grand total的值:

df['number3'] = df['number2'] * 2

但是当我想在某些excel文件中添加从表中解析出的任何列时,就会出现问题:

excelFile = pd.ExcelFile("my_excel_file.xlsx")
nrows = excelFile.book.sheet_by_index(2).nrows
values_from_Excel= excelFile.parse(2, skiprows=1, skipfooter= nrows-(8)).dropna(axis=1, how='all')
values_from_Excel = pd.DataFrame(
    {'name': values_from_Excel.iloc[:, 1].tolist(),
     'number4': values_from_Excel.iloc[:, 11].tolist()
    })

df = pd.merge(df, values_from_Excel, on='name', how='left')

将此列合并到df后,Grand total的{​​{1}}值未计算出来……这是什么问题。

1 个答案:

答案 0 :(得分:0)

在所有代码之后(使用axis=1)重新分配它:

...
df.loc['Grand Total']=df.sum(axis=1)