使用apply在新数据框架中使用计算法规

时间:2017-07-26 15:17:30

标签: python pandas rows apply

在Python3.6上我有:

在运行时期间不会更改的信号列表: signalList = ['signal1', 'signal2', 'signal3', ..]

信号词典及其价值的矩阵:

signalDict = {1: { sig1: 8, sig2 : 7, sig3 : 6, sig4 : 8}, 2: {sig1: 5, sig2 : 5, sig3 : 5, sig4 : 5}...  }

一个映射字典,用于定义如何计算信号外的信号

backendSignalDict = {
            'signal1': signal1Function,
            'signal2': signal2Function,
            'signal3': signal3Function
        }

def signal1Function():
       val = signalDict[sig1] + signalDict[sig2]
       return val
def signal2Function():
       val = signalDict[sig3] + signalDict[sig4]
       return val
.....


def applyFunction():
try:
    for signal in signalList:
          newVal = backendSignalDict[signal](signalDict)
          return newVal

我想做以下事情: 迭代signalDict: 对于每个键(=矩阵中的行),应该调用apply函数 signalList,signalDict和backendSignalDict作为参数。

在Apply中:对于signalList中的每个头(Signal):在backendSignalDict中查找如何计算和使用signalDict的信号和值来计算它们。将newSignalList作为dataframe返回: 列保持不变:[' signal1',' signal2',' signal3',..]但是作为行的计算值..

  1. 如何调用apply以便可以访问signalDict和backendSignalDict? - >如何为applyFunction提供参数?

    signalListNew = signalList.apply(applyFunction,axis = 1)

  2. 如何在applyFunction中使用来自signalList的标题(信号)?或者我应该将标题复制为值,以便我可以使用值来搜索backendSignalDict? 我怎样才能做到这一点?

0 个答案:

没有答案