2016-06-11 8 views
1

파이썬을 배우려고 할 때 멍청한 질문에 사과드립니다. 속도에 일어나서 나는 다음과 같은 데이터가 가정 다시팬더 : 요약 데이터 프레임의 복수 총액

을주는 기대

YEAR   SECTOR PROFIT STARTMVYEAR TOTALPROFIT STARTMV 
IBM   TECHNOLOGY -500 2500  500   1500 
APPLE  TECHNOLOGY 800 4000  300   4500 
GM   INDUSTRIAL 250 1000   0   1250 
CHRYSLER INDUSTRIAL 600 3000  100   3500 

나는 각 그룹에 대한

SECTOR  PROFITYEAR TOTALPROFIT 
TECHNOLOGY  .046  .133 
INDUSTRIAL  .213  .021 

을 다음과 같이 보이는 요약을 만들려면, 난 그냥 첫 번째 벤치 마크를 할 원한다면 우리는 내가

을 할 수있는, sum(PROFIT)/sum(STARTMVYEAR)sum(TOTALPROFIT)/sum(STARTMV)

by_profit_totals =(df.groupby(['SECTOR'])['PROFIT'].sum()/by_first_count.groupby(['SECTOR'])['STARTMVYEAR'].sum()) 

하지만 둘 다 어떻게해야합니까? 또한, 예를 들어 이익과 시작과 같은 간단한 기능을 사용할 수 있고 요약 값을 반환합니까?

답변

1

당신은 cython optimizedsumvalues 만든 numpy array하여 다음 div을 집계하여 groupby를 사용할 수 있습니다 받아들이

g = df.groupby('SECTOR').sum() 
print (g[['PROFIT','TOTALPROFIT']].div(g[['STARTMVYEAR','STARTMV']].values).reset_index()) 
     SECTOR PROFIT TOTALPROFIT 
0 INDUSTRIAL 0.212500  0.021053 
1 TECHNOLOGY 0.046154  0.133333 
+0

그게 최고 ... 완벽한 .. 감사 –

+0

감사합니다. 다행 이네. 너를 도울 수있어. 좋은 날! – jezrael

관련 문제