对模型中的多个数据帧求和

时间:2017-10-25 19:09:58

标签: python pandas class

我已经建立了一个优化能耗的模型。 一些变量在数据表中给出。 为了简单和不同数据表的可用性,我在一个类中构建了我的模型。

不同的能量消耗在类的init函数中定义:

    def __init__(self, PV, refrigerator, clotheswasher, dishwasher, freezer):
        self.PV = PV
        self.refrigerator = refrigerator
        self.clotheswasher = clotheswasher
        self.dishwasher = dishwasher
        self.freezer = freezer

这些值在我的模型中用于数据的所有时间戳(即一天,每5分钟数据)

    for t in self.model.T:
        self.model.PV[t] = self.PV
        self.model.refrigerator[t] = self.refrigerator
        self.model.clotheswasher[t] = self.clotheswasher
        self.model.dishwasher[t] = self.dishwasher
        self.model.freezer[t] = self.freezer

我想将它们添加起来以绘制当天的总能耗

    self.model.total[t] = self.model.PV[t] + self.model.refrigerator[t] + self.model.clotheswasher[t] + self.model.dishwasher[t] + self.model.freezer[t]

但是,对t中的每个self.model.total[t]执行此操作时,我会得到一个带有求和的数据帧,即添加A B和C时:

index   A   B   C   
  1     3   4   2    
  2     2   1   4    
  3     1   3   2    

我想获得一个类似的数据框:

index      tot
  1         9
  2         7
  3         6

但我明白了:

index      tot
  1         9
            7
            6
  2         9
            7
            6
  3         9
            7
            6

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

如果我们通过处理简化数据示例来简化您要执行的操作,我们可以使用以下代码:

import pandas as pd

DF = pd.read_csv("Data.csv")

print DF
print 

for i in range(len(DF)):
    print i, sum(DF.iloc[i])

将产生以下输出:

   A  B  C
0  3  4  2
1  2  1  4
2  1  3  2

0 9
1 7
2 6

你可能只是在你的类实例化和数据加载时犯了一些简单的错误。一旦你解决了这个问题,你的结果就可能正确。从一个简单的小数据集开始,直到找到问题为止,并逐步解决问题。