Python Dataframe使用groupby跨扩展/运行范围应用函数
使用quantopian max_drawdown函数,我试图在不断扩大的数据范围内计算max_drawdown,因此我期望有多个不同的输出Python Dataframe使用groupby跨扩展/运行范围应用函数,python,Python,使用quantopian max_drawdown函数,我试图在不断扩大的数据范围内计算max_drawdown,因此我期望有多个不同的输出 from empyrical import max_drawdown import pandas as pd returns = pd.DataFrame({ 'value_date' : ['2018-01-31', '2018-02-28', '2018-03-31','2018-04-30', '2018-05-31', '2018
from empyrical import max_drawdown
import pandas as pd
returns = pd.DataFrame({
'value_date' : ['2018-01-31', '2018-02-28', '2018-03-31','2018-04-30', '2018-05-31', '2018-06-30',
'2018-01-31', '2018-02-28', '2018-03-31','2018-04-30', '2018-05-31', '2018-06-30'],
'code_id' : ['AUD','AUD','AUD','AUD','AUD','AUD',
'USD','USD','USD','USD','USD','USD'],
'gross_return': [.01, .02, .03, -.4, -.06, -.02,
.06, .8, .9, .4, -1.06, .03],
})
这段代码非常接近,但它没有扩展/运行,而是使用整个范围的数据帧(按代码id分组)
我尝试了以下方法
returns['max_drawdown'] = returns.groupby(['code_id'])['gross_return'].expanding().transform(lambda x: max_drawdown(x))
但是获取'AttributeError:'ExpandingGroupby'对象没有属性'transform'
有什么想法吗
函数库
更新
这很有效
print(returns.groupby(['code_id'])['gross_return'].expanding().apply(lambda x: max_drawdown(x)))
但是这并不TypeError:插入列的索引与框架索引不兼容
returns['max_drawdown'] = returns.groupby(['code_id'])['gross_return'].expanding().apply(lambda x: max_drawdown(x))
returns['max_drawdown'] = returns.groupby(['code_id'])['gross_return'].expanding().apply(lambda x: max_drawdown(x))