我有一个投资组合DataFrame,其中包含一系列股票和数量:
stock, quantity
AAPL, 100
GOOG, 50
我有一个函数lookup(stock, date)
可以返回价格。
将lookup()
应用于股票DataFrame
的最优雅方式是什么?
PS我会使用DataFrame.apply()
,但我不相信我能提供日期。
答案 0 :(得分:0)
这应该有效:
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)