2016-07-05 11 views
0

나는 다음 한 데이터 세트 결합 : 나는 승 얻을 싶습니다 어떤파이썬 팬더 - 특정 행을 비교하고

Group LowerTier UpperTier Value 
    1   0   99   0  
    1   100   199  0 
    1   200   299  10 
    1   300   1000  20 
    2   0   249  0 
    2   250   1000  5 
(...) 

/파이썬과 팬더가 다음입니다 :

Group LowerTier UpperTier Value 
    1   0   199   0  
    1   200   299  10 
    1   300   1000  20 
    2   0   249  0 
    2   250   1000  5 

: 내가 좋아하는 것을 값이 같은 값을 가진 그룹 내의 모든 행을 DoubleTier의 최소값과 double 값의 최대 UpperTier (예 : 그룹 1, 값 = 0)의 조건에서 결합합니다.

어떻게이 테이블을 얻을 수 있습니까? 사전에

덕분에

답변

3

당신은 aggregategroupby을 시도 했습니까?

df.groupby(['Group','Value'],as_index=False).agg({'LowerTier':min,'UpperTier':max}) 

첫 번째는 dataframe를 만듭니다

df = pd.DataFrame({'Group':[1,1,1,1,2,2],'LowerTier':[0,100,200,300,0,250],'UpperTier':[99,199,299,1000,249,1000],'Value':[0,0,10,20,0,5]}) 

그런 agggroupby을 적용

df.groupby(['Group','Value'],as_index=False).agg({'LowerTier':min,'UpperTier':max}) 

출력 :

Group Value UpperTier LowerTier 
0 1  0  199   0 
1 1  10  299   200 
2 1  20  1000  300 
3 2  0  249   0 
4 2  5  1000  250 
+0

대단히 감사합니다! 나는 피벗 테이블 승/근무했지만 올바른 데이터 프레임을 얻을 수 없습니다. – Sebastian

+0

팬더 스와의 행운을 환영합니다. 매우 강력하고 가치가 있습니다! – ysearka