1
J'ai une trame de données qui stocke les valeurs de séries chronologiques dans un large tableau:Poids transversal dans une série chronologique dataframe
market_value = pd.DataFrame({'AAPL':[100,200,400], 'IBM':[50,100,200],'MSFT':[50,200,400]},
index = ['2013-12-31', '2014-12-31', '2015-12-31'])
In [1]: market_value
Out [1]:
AAPL IBM MSFT
2013-12-31 100 50 50
2014-12-31 200 100 200
2015-12-31 400 200 400
Je veux calculer le poids transversal pour chaque stock à tout donné point de temps. Par exemple sur 2013-12-31, le poids de AAPL est:
100/(100+50+50) = 0.50
Ainsi, le résultat devrait ressembler à ceci:
In [2]: weight
Out [2]:
AAPL IBM MSFT
2013-12-31 0.50 0.25 0.25
2014-12-31 0.40 0.20 0.40
2015-12-31 0.40 0.20 0.40
En Matlab cela se fait par:
weight = market_value ./ repmat(sum(market_value,2), 1, 3)
Quelle est la manière la plus élégante de faire cela en Python?