2016-03-22 12 views
1

私は毎月の日付で索引付けされ、1と0を含むpandas DataFrameを持っています。パネルデータのウェイト - パンダ

各日付(行)について、私は行を合計し、時間の経過とともに重みを決定するためにその合計で各データポイントを分割したいと考えています(データポイントがゼロの場合、ゼロにする必要があります)。

私のデータは次のようになります。

   A  B  C  D  
01-2001   1  1  0  1 
02-2001   1  0  0  1 
03-2001   1  0  0  1 
04-2001   1  1  1  1 
05-2001   1  1  1  0 

出力は次のような次のようになります。

   A  B  C  D  
01-2001   0.33 0.33 0  0.33 
02-2001   0.5  0  0  0.5 
03-2001   0.5  0  0  0.5 
04-2001   0.25 0.25 0.25 0.25 
05-2001   0.33 0.33 0.33 0 

は誰でも助けることはできますか?

ありがとうございます!

あなたが sumdivを使用することができます

答えて

0

:あなたがroundが必要な場合

print df.div(df.sum(axis=1), axis=0) 
       A   B   C   D 
01-2001 0.333333 0.333333 0.000000 0.333333 
02-2001 0.500000 0.000000 0.000000 0.500000 
03-2001 0.500000 0.000000 0.000000 0.500000 
04-2001 0.250000 0.250000 0.250000 0.250000 
05-2001 0.333333 0.333333 0.333333 0.000000 

そして:

print df.div(df.sum(axis=1), axis=0).round(2) 
      A  B  C  D 
01-2001 0.33 0.33 0.00 0.33 
02-2001 0.50 0.00 0.00 0.50 
03-2001 0.50 0.00 0.00 0.50 
04-2001 0.25 0.25 0.25 0.25 
05-2001 0.33 0.33 0.33 0.00 
関連する問題