我正在尝试重新采样数据框。首先,我想在结果中保留几个聚合。其次,对于特定列,还有一个额外的聚合感兴趣。由于此聚合仅与单个列相关,因此可以将重采样器限制在此列,以免不必要地将聚合应用于其他列。
此方案适用于简单的一维列索引:
import numpy as np
import pandas as pd
df = pd.DataFrame(data=np.random.rand(50,4), index=pd.to_datetime(np.arange(0, 50), unit="s"), columns=["a", "b", "c", "d"])
r = df.resample("10s")
result = r.aggregate(["mean", "std"])
result[("d", "ffill")] = r["d"].ffill()
print(result)
但是,一旦我开始使用多索引列,问题就出现了。首先,我不能一次保留多个聚合:
df.columns = pd.MultiIndex.from_product([("a", "b"), ("alpha", "beta")])
r = df.resample("10s") # can be omitted
result = r.aggregate(["mean", "std"])
---> AttributeError: 'Series' object has no attribute 'columns'
其次,重采样器不能再局限于相关列:
r[("b", "beta")].ffill()
--> KeyError: "Columns not found: 'b', 'beta'"
如何将我的关注点从简单指数转变为多指数?
慕丝7291255
动漫人物
相关分类