2014-02-19 1 views
-1

이 질문에 대한 올바른 검색 용어를 찾을 수 없으므로이 질문에 앞서 질문을 받았으면 사과하십시오.(함수 매개 변수로) 열의 이름을 지정할 수있는 파이썬 함수

기본적으로 필자는 특정 종류의 분석을 수행 할 열 (함수 매개 변수로)의 이름을 지정할 수있는 파이썬 함수를 만들고 싶습니다.

예를 들어 아래를 참조하십시오. 분명히이 코드는 작동하지 않습니다. 왜냐하면 'yearattribute'가 df 이후 문자 그대로 취해지기 때문입니다. 도와 줘서 고맙다.

def networkpairs2(df, Year): 
    """ 
    An effort to generalize the networkpairs function by allowing you to choose the 
    organization and actor parameter column names 
    """ 
    totaldf = df 
    yearattribute = '%s' %Year 
    print yearattribute 
    yearlist = list(np.unique(df.yearattribute)) 
    print yearlist 
    return 

답변

3

내가 당신을 이해한다면, df[yearattribute].unique() 작동합니다 : 아래

는 데모입니다. 사전과 같이 DataFrame 열에 대해 색인을 생성 할 수 있습니다.

제외 # 1 : totaldf = dfdf의 새로운 이름으로 만, 복사본을 만들지 않으며 어쨌든 사용하지 않습니다.

제외 # 2 : 아무 것도 반환하지 않습니다.

+0

D' oh. 나는 바보 같은 것을 잊고 있다는 것을 알았다. 그 인덱스 방법을 잊어 버렸습니다. – user3314418

2

현재 getattr를 사용할 수 있습니다

yearlist = list(np.unique(getattr(df, yearattribute))) 

getattr는 그 이름의 캐릭터 라인 표현을 통해 속성에 액세스 할 수 있습니다.

>>> class Foo: 
...  def __init__(self): 
...   self.attr = 'value' 
... 
>>> foo = Foo() 
>>> getattr(foo, 'attr') 
'value' 
>>> 
+0

우수 감사합니다. – user3314418

관련 문제