当字典中有多个列的函数列表时,重新采样“ ohlc”聚合失败

时间:2019-10-22 07:49:19

标签: python dataframe aggregation

我正在尝试使用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

0 个答案:

没有答案