Pandas shift - 如何保留最后一行?

Pandas shift - how to keep the last row?

我有一个非常简单的问题。我有一个数据框:

   A
0  1.0
1  2.0
2  3.0

当我执行 df.shift(1) 时,数据如下所示:

     A
0  NaN
1  1.0
2  2.0

我希望它看起来像:

     A
0  NaN
1  1.0
2  2.0
3  3.0

简单来说 - 如何在不丢失最后一行的情况下移动数据?

只需复制一个 nan 行,然后将其附加到顶部:

import pandas as pd
import numpy as np

data = [1.0,2.0,3.0]
df = pd.DataFrame(data, columns = ['A'])
df1 = pd.DataFrame([[np.nan] * len(df.columns)], columns=df.columns)
df = df1.append(df, ignore_index=True)
print(df)  


     A
0  NaN
1  1.0
2  2.0
3  3.0

试试这个:

df.shift(1).append(
    df.iloc[[-1]]).reset_index(drop = True)