2016-08-19 2 views
3

"subset"이라는 이름의 dataFrame이 있으며 그 코드는 다음과 같습니다. pd는 pandas의 별명입니다. by = lambda x: lambda y: getattr(y, x)의 의미를 알 수 없습니다."by = lambda x : lambda y : getattr (y, x)"는 무엇을 의미합니까?

pivot = pd.pivot_table(subset, values='count', rows=['date'], cols=['sample'], fill_value=0) 
by = lambda x: lambda y: getattr(y, x) 
grouped = pivot.groupby([by('year'),by('month')]).sum() 
+0

[왜 파이썬 람다가 유용할까요?] (0120-385-301) – Mephy

+1

'year'와'month'는 내가 칼럼이라고 가정합니다. 'group '= pivot.groupby (['year ','month ']). sum()' –

+0

'year'과'month'은 같은 것이 아니라고 추측합니다. 이것은 코드에 처음 나타나고 잘 돌아갈 수 있습니다. 하위 집합에 '날짜'라는 열이 있는데 그 둘 사이의 관계를 찾으려고합니다. @ StefanoPotter – zhql0907

답변

2

by = lambda x: lambda y: getattr(y, x)는 다음에 해당 :

def by(x): 
    def getter(y): 
     return getattr(y, x) 
    return getter 

getattr(a, b)a라는 개체의 이름 b와 속성을 가져옵니다.

따라서 by('bar')은 개체에서 'bar' 특성을 반환하는 함수를 반환합니다.

by('bar')(foo)getattr(foo, 'bar')이고, 대략 foo.bar을 의미한다.

그래도 도움이되지 않는다면 문제가 계속되는 부분을 저희에게 알려주십시오.

관련 문제