pandas.DataFrame.apply() 带参数?
pandas.DataFrame.apply() with a parameter?
我有一个包含股票和数量列表的投资组合 DataFrame:
stock, quantity
AAPL, 100
GOOG, 50
我有一个函数 lookup(stock, date)
returns 价格。
将 lookup()
应用于股票 DataFrame
的最优雅方法是什么?
PS 我会使用 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)
我有一个包含股票和数量列表的投资组合 DataFrame:
stock, quantity
AAPL, 100
GOOG, 50
我有一个函数 lookup(stock, date)
returns 价格。
将 lookup()
应用于股票 DataFrame
的最优雅方法是什么?
PS 我会使用 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)