Panda Dataframe - 向下移动行并维护数据

时间:2017-05-26 01:24:37

标签: python pandas dataframe

我原来的Dataframe(df):

String borrar = getIntent().getStringExtra("EXTRA_BORRAR_POST");

if (borrar != null) {
    // always good to log important values
    Log.d(TAG, "borrar= " + borrar);

    DatabaseReference mipost = FirebaseDatabase.getInstance().getReference();

    mipost.child("user-posts").child(getUid()).child(borrar).removeValue(mRemoveListener);

    mipost.child("posts").child(borrar).removeValue(mRemoveListener);

    mipost.child("post-comments").child(borrar).removeValue(mRemoveListener);
}

我想将值降低6,如下所示:

    column1  column2
0   1        a
1   2        b
2   3        c
3   4        d
4   5        e
5   6        f

当我使用 column1 column2 0 1 2 3 4 5 6 1 a 7 2 b 8 3 c 9 4 d 10 5 e 11 6 f 时,我最终会丢失数据。

我发现了这篇帖子(How to shift a column in Pandas DataFrame without losing value),但只有当值向下移动1时,它似乎才有效。

如何在保留数据的同时向下移动多个点?

2 个答案:

答案 0 :(得分:0)

shift不会改变数据框的形状,你要找的是在数据框前添加一些额外的行,这是你要显示的最简单的情况(即索引由整数组成) )您可以按如下方式操纵索引以实现您的需要:

df.index = df.index + 6
df.reindex(range(6) + df.index.tolist())    

#column1    column2
#0   NaN    NaN
#1   NaN    NaN
#2   NaN    NaN
#3   NaN    NaN
#4   NaN    NaN
#5   NaN    NaN
#6   1.0    a
#7   2.0    b
#8   3.0    c
#9   4.0    d
#10  5.0    e
#11  6.0    f

答案 1 :(得分:0)

你可以尝试

df.index = df.index+6
df = df.reindex(np.arange(12))

    column1 column2
0   NaN     NaN
1   NaN     NaN
2   NaN     NaN
3   NaN     NaN
4   NaN     NaN
5   NaN     NaN
6   1.0     a
7   2.0     b
8   3.0     c
9   4.0     d
10  5.0     e
11  6.0     f