我正在尝试使用pandas resample / agg功能进行降采样。
我必须将不同的功能应用于数据框的多个列。
我发现当本地'ohlc'函数与函数字典中其他列的'函数列表'一起出现时,agg进程会抱怨错误消息
以下是用于测试的简化代码。
date = pd.date_range('2019-10-01', periods=9, freq='D')
tick = {'price':[1000, 1050, 1050, 1100, 1150, 1100, 1000, 950, 950],
'buy':[20, 50, 1000, 2000, -500, -10, -3500, -5000, 5]}
df = pd.DataFrame(tick, index=date)
functions = {'price':'ohlc', 'buy':['mean', 'sum']}
ds = df.resample('3D').agg(functions)
我的真实代码有5列,每列都必须在重采样期间应用某些功能。并且每一列只有一个功能没有错误。
我找到了使用功能列表的其他解决方案,例如
functions = {'price':[("open", "first"), ("high", "max"), ("low", "min"), ("close", "last")], 'buy':['mean', 'sum']
但是我想知道我的代码有什么问题。
错误消息包含
TypeError: cannot concatenate object of type "<class 'dict'>"; only
pd.Series, pd.DataFrame, and pd.Panel (deprecated) objs are valid