我有一個投資組合數據幀與股票和數量的列表:pandas.DataFrame.apply()帶參數?
stock, quantity
AAPL, 100
GOOG, 50
我有一個函數lookup(stock, date)
返回的價格。
什麼是最優雅的方式來申請lookup()
股票DataFrame
?我想用DataFrame.apply()
但我不相信我可以提供日期。
我有一個投資組合數據幀與股票和數量的列表:pandas.DataFrame.apply()帶參數?
stock, quantity
AAPL, 100
GOOG, 50
我有一個函數lookup(stock, date)
返回的價格。
什麼是最優雅的方式來申請lookup()
股票DataFrame
?我想用DataFrame.apply()
但我不相信我可以提供日期。
這應該工作:
def lookup(stock, date):
prices = {('AAPL', '2016-01-01'): 1, ('GOOG', '2016-01-01'): 2}
return prices[(stock, date)]
>>> date = '2016-01-01'
>>> df.apply(lambda x: lookup(x[0], date), axis=1)
0 1
1 2
dtype: int64
如果stock
是索引,使用:
>>> df.apply(lambda x: lookup(x.name, date), axis=1)
實際上這很酷,我也學到了一些東西!謝謝!我有一個問題,x [0]提出的數量(我認爲'AAPL'在我的情況下是在索引中) - 我該如何獲得股票? – cjm2671
嘗試:'df.apply(lambda x:lookup(x.name,date),axis = 1)' –
那麼,應該日期從何而來? –
看看'args'的參數:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.apply.html – MaxU