在Python和Pandas中,如何使用听写器在未知频率的索引中切换

在Python和Pandas中,如何使用听写器在未知频率的索引中切换,python,pandas,time-series,Python,Pandas,Time Series,我绞尽脑汁想了好几天怎么解决这个问题。请让我知道,如果我的方法是完全非蟒蛇或有一种方法可以做到这一点在熊猫。我一直在尝试从字典“lix”中的片段子集通过一个“shift”对数据帧索引进行移位或tshift index = pd.date_range(start='2014-01-01',freq='B',periods=5) + pd.date_range(start='2014-02-04',freq='B',periods=7) + pd.date_range(sta

我绞尽脑汁想了好几天怎么解决这个问题。请让我知道,如果我的方法是完全非蟒蛇或有一种方法可以做到这一点在熊猫。我一直在尝试从字典“lix”中的片段子集通过一个“shift”对数据帧索引进行移位或tshift

index =
    pd.date_range(start='2014-01-01',freq='B',periods=5) +
    pd.date_range(start='2014-02-04',freq='B',periods=7) +
    pd.date_range(start='2014-03-20',freq='B',periods=11)
so = pd.DataFrame(data=np.nan,index=index,columns=['IBM','Calc'])
lix = {}
lix['A']=so.index[:5]
lix['B']=so.index[5:10]
lix['C']=so.index[10:15]
lix['D']=so.index[15:]
上面的“索引”没有模式或频率,它只是一组不断增加的日期。“so”DataFrame.index的片段都在字典中。我想取lix['A']切片,并将其向前移动一次,但按so.index。然后我将取lix['B'],并将其向前移动一次,等等。例如,我可以获取切片的结尾,并使用pd.datetools.BDay(1)将结尾偏移一个工作日,但这不是so.index中的内容,因此如何添加一次移位,以使结果从so.index到达有效日期

ts= lix['A'][-1]
ts + pd.datetools.BDay(1)

编辑:原始so.index的切片只是为了说明,我无法预测so.index是如何切片到字典中的。re-shift:pd.Series.shift(因此['IBM'][lix['A']])将返回一个数据帧,其中的数据向前移动了一步,但其目的是获取移动的索引。谢谢

您尝试过再次切片吗?不可能<代码>so.index[:5]->
so.index[1:6]