【问题标题】:My sum function does not sum values of some columns我的 sum 函数不会对某些列的值求和
【发布时间】:2019-05-15 06:47:38
【问题描述】:

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

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 后,number4Grand total 值未计算...这里有什么问题...?

【问题讨论】:

  • 计算列的dtype为int,而顽固列的dtype为numpy.int64

标签: python excel pandas dataframe


【解决方案1】:

在所有代码之后再次分配它(axis=1):

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

【讨论】:

  • 我不工作...Grand total 的值仍然是NaN
  • @milka1117 立即尝试
猜你喜欢
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-27
  • 2017-03-14
  • 2016-10-06
  • 1970-01-01
  • 2014-10-30
相关资源
最近更新 更多