2016-03-22 118 views
1

我有一個熊貓數據框按月索引,包含1和0。面板數據中的權重 - 熊貓

對於每個日期(行),我想總結行,然後將每個數據點除以該總和以確定隨時間的權重(如果數據點爲零,它應該保持爲零)。

我的數據是這樣的:

   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 

誰能幫助?

謝謝!

回答

0

您可以使用divsum

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 

如果你需要round

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