我想計算這兩家公司的年度業績(作爲市場價值的變化),這兩家公司的數據存儲在下面的數據框中。計算大熊貓的股票收益DataFrame
df = pd.DataFrame({'tic' : ['AAPL', 'AAPL', 'AAPL', 'GOOGL','GOOGL','GOOGL'],
'mktvalue' : [20,25,30,50,55,60],
'fyear' : [2014,2015,2016,2014,2015,2016]})
我已經看到類似的解決方案lambda函數,但直到現在我無法適應它我的數據。我想到這樣一個解決方案來計算基於年度業績:
df['performance'] = df.fyear.apply(lambda x: (df.mktvalue[(df['fyear'] == 2014)])/
(df.mktvalue[(df['fyear'] == 2013)]) if x == 2014
else (df.mktvalue[(df['fyear'] == 2013)])/
(df.mktvalue[(df['fyear'] == 2013)])
我的一個主要問題是,在調用
(df.mktvalue[(df['fyear'] == 2013)])
我收到的所有市場價值時,在執行2013年,而不是隻有相應的這家公司。
我將不勝感激任何幫助!
不管你的問題的,在'else'分支,'(df.mktvalue [(DF [ 'fyear'] == 2013)])/(df.mktvalue [(DF [ 'fyear'] == 2013)])'將始終返回1.是你想要的嗎? – IanS