如何重新索引指定中心的数据帧

时间:2014-01-27 20:17:43

标签: python pandas

df = pd.DataFrame([1,1,1,1], index=pd.date_range('1/1/2013',periods=4))
print df
            0
2013-01-01  1
2013-01-02  1
2013-01-03  1
2013-01-04  1

如何通过指定0索引重新索引DataFrame并让它自动填充其余索引?例如,如果我将最后一项的索引指定为0,那么我应该具有以下内容:

    0
-3  1
-2  1
-1  1
 0  1

修改

我没有指定行号,而是指定0索引的目标日期。

1 个答案:

答案 0 :(得分:2)

这会有用吗?我假设您正在丢弃当前索引并切换到整数索引。

In [132]: df = pd.DataFrame([1,1,1,1], index=pd.date_range('1/1/2013',periods=4))

In [133]: target_zero_row = df.index.get_loc('2013-01-04')

In [134]: df.index = pd.np.arange(df.shape[0]) - target_zero_row

In [135]: df
Out[135]: 
    0
-3  1
-2  1
-1  1
 0  1

[4 rows x 1 columns]

你也可以通过这种方式实现同​​样的目标:

In [180]: df = pd.DataFrame([1,1,1,1], index=pd.date_range('1/1/2013',periods=4))

In [181]: target_zero_row = df.index.get_loc('2013-01-04')

In [182]: df.reset_index(drop=True, inplace=True)

In [183]: df.index = df.index + (-target_zero_row)

In [184]: df
Out[184]: 
    0
-3  1
-2  1
-1  1
 0  1

[4 rows x 1 columns]