我想在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
答案 0 :(得分:5)
使用loc
向DataFrame添加新的空白行,然后执行转移。
df.loc[max(df.index)+1, :] = None
df.x2 = df.x2.shift(1)
上面的代码假定您的索引是基于整数的,这是pandas的默认值。如果您使用的是基于非整数的索引,请将max(df.index)+1
替换为您想要新的最后一个索引的内容。