所以我在pandas数据框中有大量的列,我需要通过一个函数传递它们的组。功能很大,但我将在下面创建一个示例。我不知道如何将df.varName的引用传递给函数,而不会导致未定义变量的问题。当我尝试如下函数时:
def bianco2(df, varX, varT):
stdX = np.std(df.varX)
stdT = np.std(df.varT)
newVar = stdX + stdT
return newVar
我得到varX未定义的错误。所以我写了一个函数,我将通过整个短语:
def bianco3(varX, varT):
stdX = np.std(varX)
stdT = np.(varT)
newVar = stdX + stdT
return newVar
其中" varX = df.varX"。
这对大量变量有效但不实用,因为我仍然需要手动更新每个varX和varT。所以我尝试以df.varX格式创建变量列表,然后使用for循环传递变量列表。问题是python将其视为字符串而不是引用。我看着使用functools.partial,但没有成功。
有关如何以简单格式编写此内容以及能够将熊猫列传递给函数的任何想法吗?
答案 0 :(得分:2)
您可能想尝试一下吗?
def bianco2(df, varX, varT):
stdX = np.std(df[varX])
stdT = np.std(df[varT])
newVar = stdX + stdT
return newVar
print bianco2(df,'Customer','Policy')
输入
Policy Customer Employee CoveredDate LapseDate
0 123 1234 1234 2011-06-01 2013-01-01
1 124 1234 1234 2016-01-01 2013-01-01
2 124 5678 5555 2014-01-01 2013-01-01
输出
2095.39309492