Я бы хотел рассчитать годовую производительность (как изменение рыночной стоимости) этих двух фирм, данные которых хранятся в приведенной ниже таблице данных.Вычислить возврат акций в pandas 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]})
Я видел подобное решение с лямбда-функции, но до сих пор я не мог приспособить его к моим данным. У меня было решение, как это в виду, чтобы рассчитать производительность на основе года:
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 [(ДФ [ 'fyear'] == 2013)])/(df.mktvalue [(ДФ [ 'fyear'] == 2013)]) 'всегда будет возвращаться 1. Это то, что вы хотите? – IanS