2017-02-22 1 views
-2

팬더 데이터 프레임 내에 많은 양의 열이 있고 함수를 통해 그룹을 전달해야합니다. 함수는 크지 만 아래 예제를 만들 것입니다. df.varName에 대한 참조를 정의되지 않은 변수의 문제없이 함수에 전달하는 방법을 모르겠습니다.팬더 데이터 프레임 및 열을 함수에 전달하는 방법

def bianco2(df, varX, varT): 
    stdX = np.std(df.varX) 
    stdT = np.std(df.varT) 
    newVar = stdX + stdT 
    return newVar 

varX가 정의되지 않은 오류가 발생합니다. 그래서 나는 전체 구문을 전달할 함수를 작성했습니다 :

여기서 "varX = df.varX".

각 varX 및 varT를 수동으로 업데이트해야하기 때문에 많은 수의 변수에는 유용하지만 실용적이지 않습니다. 그래서 df.varX 형식의 변수 목록을 만든 다음 for 루프를 사용하여 변수 목록을 전달하려고했습니다. 문제는 그것을 파이썬이 참조가 아닌 문자열로 간주한다는 것입니다. 나는 functools.partial을 사용하여 보았지만 성공하지 못했습니다.

간단한 형식으로 이것을 작성하고 팬더 열을 함수에 전달하는 방법에 대한 아이디어가 있습니까?

+1

당신이 무슨 뜻인지 확실하지. 'bianco2 '라고 어떻게 부를까요? [mcve]를 게시 해보세요. – Goyo

답변

0

시도해 볼 수 있습니다.

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 
+0

감사합니다 Shijo! 그건 내 문제를 단순화해야합니다. – dbianco

관련 문제