2017-07-09 18 views
1

私はPandasを初めて使っています。私は自分で修正できない質問があります。 これは私のコラムPython-Pandasで行を移動

0  12.000000 

1  21.540659 

2  19.122413 

3  16.568042 

4  17.082154 

5  15.932148 

6  15.226856 

7  14.400521 

8  17.900962 

9  17.169741 

10   NaN 

であり、私はそれをシフトしたいものでrow.The期待される結果は次のようになりますする必要があります:ここで

0   NaN 

1  12.000000 

2  21.540659 

3  19.122413 

4  16.568042 

5  17.082154 

6  15.932148 

7  15.226856 

8  14.400521 

9  17.900962 

10 17.169741 

が私のコードです:

data['A']=pd.Series(a).shift(periods=1) 

aはリストで、私はそれを私のデータフレームに "A"として新しい列を追加するためにpandasシリーズに変換します。 Howerevr最後のデータを失うことなく行をシフトする必要があります。

+0

配列*に*を挿入してSeriesオブジェクトにするのはなぜですか? –

+0

もっと説明できますか? – Elham

答えて

1

は今待って?これは機能しませんか?

data["A"] = data["A"].shift(1) 
+0

=リスト( 'ABCDE')をお持ちの場合は、 'E'を失います。 –

+0

しかし、OPの結果は最後の 'NaN'を失います。 – Parfait

1

IIUC、

その後、パッドの余分な行を使用してシリーズの作成をシフトすることができます:

data['A'] = pd.Series(a+[pd.np.nan]).shift(1) 
0

これにはnp.rollを使用できます。

回答が見つかりましたhere、詳細についてはリンクを確認してください。