2016-06-11 6 views
1

私はPythonを学ぼうとしているので、noob質問のお詫び。 、速度まで取得し、私は次のようなデータを持っていると仮定すると、バックパンダ:サマリーデータフレームの複数の総計

を与えることを楽しみにしてい

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

あなたはvaluesによって作成numpy arrayによってcython optimizedsum、その後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