班次慢/大Pandas18号不工作

2024-06-16 10:08:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我在水蟒熊猫0.18.1上。 我以前在pandas 12上这样做是为了在多索引数据帧中延迟一些值,其中索引级别0=日期,索引级别1=安全ID(3年的每日数据):

In [1]: testDB.head(2)
Out[1]:
<class 'pandas.core.frame.DataFrame'>
MultiIndex: 2 entries, (2013-01-01, 000312) to (2013-01-01, 00036020)
Columns: 140 entries, in_universe to alpha_Tile

In[2]:
# lag a certain field:
#lag alphas
A_LAGS=[0,1,2,3,5,10,30,60,90]
grouped=testDB.groupby(level=1)['alpha']
for lag in A_LAGS:
    lagName='lagA_'+str(int(lag))
    testDB[lagName]=grouped.shift(periods=lag) # move old ones forward

现在在熊猫18号,这一切永远不会结束。我是说,从来没有-4小时就走。 我知道熊猫处理日期的方式发生了变化,所以我尝试使用tshift-does-not-work并抱怨“freq-not-set”。事实上并非如此(框架是从包含日期、标识符和其他数据的h5文件构建的):

^{pr2}$

所以我试着用适当的频率设置将索引重置为DateTimeIndex。在

^{3}$

现在设置了频率,但我无法替换索引:

In [5]:y = x.reindex(index=i,level=0)
       y.index.levels[0]

Out[5]:
DatetimeIndex(['2016-01-01', '2016-01-04', '2016-01-05', '2016-01-06',
           '2016-01-07', '2016-01-08', '2016-01-11', '2016-01-12',
           '2016-01-13', '2016-01-14',
           ...
           '2016-11-17', '2016-11-18', '2016-11-21', '2016-11-22',
           '2016-11-23', '2016-11-24', '2016-11-25', '2016-11-28',
           '2016-11-29', '2016-11-30'],
          dtype='datetime64[ns]', name=u'date', length=239, freq=None)

因此,最后(为冗长的介绍致歉,我想提供完整的数据)两个问题:

  1. 在大熊猫18号中,一个人如何在一个巨大的多索引帧上移动?在
  2. 为什么我不能将索引重置为新创建的索引?在

Tags: to数据inalphapandasout级别level