我有一个名为rollTestLogReturnsData的数据框,它按日期索引
BBG.KABN.S BBG.TKA.S BBG.CON.S BBG.ISAT.S
date
2015-02-17 -0.005821 -0.016792 -0.016111 0.001028
2015-02-18 0.000588 0.019169 -0.000307 -0.001832
2015-02-19 0.005041 -0.007580 0.004164 0.003923
2015-02-20 -0.004881 0.008011 0.007047 -0.000307
2015-02-23 0.007468 -0.011277 -0.003273 0.004355
然后我创建了另一个名为rollReturnRandomDf的数据框,该数据框由日期索引,这是从rollTestLogReturnsData随机选择的行。这是使用:
构建的rollReturnRandomDf = rollTestLogReturnsData.ix[np.random.choice(rollTestLogReturnsData.index, len(rollTestLogReturnsData.index))]
看起来像:
BBG.KABN.S BBG.TKA.S BBG.CON.S BBG.ISAT.S
date
2015-02-20 -0.004881 0.008011 0.007047 -0.000307
2015-02-20 -0.004881 0.008011 0.007047 -0.000307
2015-02-19 0.005041 -0.007580 0.004164 0.003923
2015-02-17 -0.005821 -0.016792 -0.016111 0.001028
2015-02-20 -0.004881 0.008011 0.007047 -0.000307
请注意,多行的索引日期可以相同(在这种情况下,2015-02-20会发生3次)。当我询问rollTestLogReturnsData时,问题就开始了。
有没有办法用整数重新索引rollTestLogReturnsData数据帧,所以它看起来像:
BBG.KABN.S BBG.TKA.S BBG.CON.S BBG.ISAT.S
Index
0 -0.004881 0.008011 0.007047 -0.000307
1 -0.004881 0.008011 0.007047 -0.000307
2 0.005041 -0.007580 0.004164 0.003923
3 -0.005821 -0.016792 -0.016111 0.001028
4 -0.004881 0.008011 0.007047 -0.000307
我试过操作上面的代码行但是没有想出办法来做到这一点。有人可以帮我一下吗?
非常感谢
答案 0 :(得分:1)
尝试rollReturnRandomDf.reset_index(drop=True)
在:
Out[170]:
A B C D
0
2015-02-19 0.0050 -0.0076 0.0042 0.0039
2015-02-18 0.0006 0.0192 -0.0003 -0.0018
2015-02-19 0.0050 -0.0076 0.0042 0.0039
2015-02-17 -0.0058 -0.0168 -0.0161 0.0010
2015-02-18 0.0006 0.0192 -0.0003 -0.0018
后:
Out[171]:
A B C D
0 0.0050 -0.0076 0.0042 0.0039
1 0.0006 0.0192 -0.0003 -0.0018
2 0.0050 -0.0076 0.0042 0.0039
3 -0.0058 -0.0168 -0.0161 0.0010
4 0.0006 0.0192 -0.0003 -0.0018
答案 1 :(得分:0)
您应该对dataFrame使用.set_index方法。
newIndex = [i for i in range(len(rollTestLogReturnsData))]
newDF = rollTestLogReturnsData.set_index(newIndex)