是否可以通过某种方式获取重采样操作的行以应用自定义函数:
假设我们有一个数据框df
,其中包含例如孩子的生日,他们的名字和他们拥有的朋友数量:
birthday name friends
datetime_1 Alice 10
datetime_2 Bob 5
... ... ...
datetime_n Tom 12
如果我们现在按某个时间频率重新采样并尝试应用自定义函数:
df.resample("w").apply(my_func)
它将仅将输入作为单独的序列而不是作为行传递。对于axis
,没有Resampler.apply
参数。所以有什么办法可以实现我想要的东西。还是有另一种内置方法可用于将自定义行为构建到简化部分中?例如,如果我想返回最频繁使用的名称,该名称由给定时间间隔内与该名称关联的朋友的数量加权。
答案 0 :(得分:0)
啊,好的。您需要的是grouper才能使用groupby。
df.groupby(pd.Grouper(freq='W')).apply(my_func)
希望如此。