2015-01-21 5 views
1

나는 active이라는 데이터 프레임이 있으며 10 개의 고유 한 POS 열 값을 가지고 있습니다. enter image description here 그런 다음 POS 값을 그룹화하고 OPW 열을 정규화 한 다음 정규화 된 값을 별도의 열 ['resid']으로 저장합니다. enter image description herePOS 값을 groupby로 설정하면 새로운 활성 데이터 프레임의 POS 열에 고유 한 POS 값만 포함되어 야합니다. 예를 들어groupby 함수에 대한 계열 쿼리

아래 바와 같이

Y 
X 
A 7 
B 3 

내 예에서는 단지 고유 순위 값을 가진 칼럼을받지한다 ?? :

df2 = pd.DataFrame({'X' : ['B', 'B', 'A', 'A'], 'Y' : [1, 2, 3, 4]}) 
print df2 

df2.groupby(['X']).sum() 

은이 같은 출력을 얻을

POS     다른 열
의 Rf         값
2B         값
LF         값
2B         값         값

+0

으로 변경하고 이미지 대신 테스트 데이터를 게시하십시오. – elyase

답변

0


내가 실제 데이터가없는 100 % 확신 할 수 없다,하지만 난 여기에 문제가 당신이 데이터를 집계되지 않는다는 것을 확신합니다.

단계별로 groupby를 살펴 보겠습니다.

active.groupby('POS')을 수행 할 때 실제로 일어나는 일은 각각의 고유 한 POS 당 데이터 프레임을 슬라이스하고 이러한 각 슬라이스를 순차적으로 적용된 함수에 전달한다는 것입니다.

당신은 get_group 사용하여 무슨 일이 일어나고 있는지의 더 나은 비전을 얻을 수 있습니다 (예 :. active.groupby ('POS')를 get_group ('RF'))

그래서 당신은 각각에 meanNormalizeOPW 함수를 적용하고를 그 조각들. 이 함수는 전달 된 데이터 프레임의 각 행에 대해 'resid'열의 평균 표준화 값을 으로 만듭니다. 그리고 그 데이터 프레임을 반환하고 통과 된 모양과 비슷한 모양으로 끝납니다.

반환 된 df에 집계 함수를 추가하면 잘 작동합니다. 여기에 의미가 있기를 바란다. return dfreturn df.mean()

+0

좋은 설명,하지만 당신은 고유 한 POS 값을 전달하고 있다고 말했습니까 ?? 그러나이 경우에는 단 10 개의 고유 POS 값이 있습니다. 그런 다음 예제에서 설명한대로 몇 가지를 얻으십시오. –

+0

아니요, 고유 한 pos 값을 전달하지 않습니다. 그것은 하나의 POS를 포함하는 모든 라인을 포함하는 데이터 프레임 조각을 전달합니다. get_group을 실행하여 어떻게 작동하는지 더 잘 느끼도록하십시오. – knightofni

+0

active.groupby ('POS').get_group ('RF') 키 오류가 발생했습니다. 내 데이터 프레임에 이것을 사용할 수 없습니다. 그러나 2B를 위해 그것은 일하고있다. 감사합니다. 개념에 대한 기본 아이디어가 있습니다. 더 이상, 나는 meanNormalizeOPW 함수에서 df.mean()을 반환해야한다고 생각하지 않습니다. –