1

我有一个按整数值索引的 python 面板。在 dict 形式中,它看起来像这样:

{1:{1:series,2: series,3:series,4:series} 2:{1:series,2:series,3:series,4:series}...}

我想按日期滚动我的数据,并在每个日期取一个过去的时间片将一个函数应用于每个时间序列,所以我得到这样的结果,其中 X 是时间片函数的输出。

  1 2 3 4 ...
1 X X X X
2 X X X X
3 X X X X
4 X X X X

我以为pandas.Panel.apply(func)会这样做,但事实并非如此。我只在 1 个看似随机的列中得到结果。我可以使用 for 循环进行迭代,但我希望有一种更快、更简单的方法来做到这一点。

我有一个看起来像这样的面板:

 <class 'pandas.core.panel.Panel'>
 Dimensions: 1000 (items) x 3714 (major) x 1000 (minor)
 Items: 1 to 1000
 Major axis: 1997-09-10 00:00:00 to 2012-06-19 00:00:00  
 Minor axis: 1 to 1000
4

2 回答 2

2

你有没有把数据放在一个Panel?如果你这样做了(时间轴data.apply(f, axis=time_ax)在哪里)应该可以解决问题。time_ax否则,请发布更多有关不起作用的上下文/数据/示例。

于 2012-06-21T21:52:33.893 回答
0

我认为您可以使用 Python lamba 函数来实现这一点,如以下链接所示:http: //pandas.sourceforge.net/dataframe.html#function-application

于 2012-06-21T18:34:20.483 回答