在熊猫数据框中移动行以及索引

时间:2019-02-20 15:36:43

标签: python pandas

如果我愿意

df = df.apply(np.roll, shift=-1) --> this moves everything by one row. 
                                     first row gets to last row.

这很完美,但是它不会使索引与行一起移位。

还有没有办法转移索引?

1 个答案:

答案 0 :(得分:0)

您可以使用.iloc自己完成此操作:

import numpy as np

shift = 1
l = len(df)
df.iloc[np.r_[(l-shift)%l:l, 0:(l-shift)%l]]

#   0  1  2
#d  3  4  5
#a  8  8  1
#a  4  8  5
#b  9  9  3
#c  5  1  7

shift = -2

#   0  1  2
#b  9  9  3
#c  5  1  7
#d  3  4  5
#a  8  8  1
#a  4  8  5

或重置索引,然后将其重新设置:

df.reset_index().apply(np.roll, shift=1).set_index('index')

#       0  1  2
#index         
#d      3  4  5
#a      8  8  1
#a      4  8  5
#b      9  9  3
#c      5  1  7

样本数据:

   0  1  2
a  8  8  1
a  4  8  5
b  9  9  3
c  5  1  7
d  3  4  5