如何在Pandas DataFrame中移动列而不会丢失值

时间:2016-03-16 17:27:33

标签: python pandas dataframe

我想在Pandas DataFrame中移动一列,但我还没有找到一种方法来做到这一点而不会丢失值。 (这篇文章与How to shift a column in Pandas DataFrame非常相似,但经验证的答案并未提供所需的输出,我无法对其进行评论。 有谁知道怎么做?

##    x1   x2
##0  206  214
##1  226  234
##2  245  253
##3  265  272
##4  283  291

期望的输出:

##    x1   x2
##0  206  nan
##1  226  214
##2  245  234
##3  265  253
##4  283  271
##5  nan  291

1 个答案:

答案 0 :(得分:5)

使用loc向DataFrame添加新的空白行,然后执行转移。

df.loc[max(df.index)+1, :] = None
df.x2 = df.x2.shift(1)

上面的代码假定您的索引是基于整数的,这是pandas的默认值。如果您使用的是基于非整数的索引,请将max(df.index)+1替换为您想要新的最后一个索引的内容。