如何将Pandas Dataframe和Column传递给函数

时间:2017-02-22 21:13:57

标签: python function pandas dataframe

所以我在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,但没有成功。

有关如何以简单格式编写此内容以及能够将熊猫列传递给函数的任何想法吗?

1 个答案:

答案 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