
はじめに
pandasは、Pythonでデータ分析をするためのライブラリです。pandasを使うことで、データの読み込み、前処理、可視化、分析などを簡単に行うことができます。
本記事では、pandasで前回値を活用する方法について解説します。前回値を取得することで、時系列データの解析や差分計算など、データ分析の効率化に役立つテクニックを学びましょう。
pandasの基本操作: shift関数を使った前回値の取得
pandasで前回値を取得するためには、shift関数を使います。この関数は、指定した行数だけデータをずらすことができます。
たとえば、以下のようなデータがあったとします。
1 2 3 4 5 | import pandas as pd data = { '日付' : [ '2022-01-01' , '2022-01-02' , '2022-01-03' , '2022-01-04' , '2022-01-05' ], '売上' : [ 100 , 200 , 300 , 400 , 500 ]} df = pd.DataFrame(data) print (df) |
この場合、shift関数を使って、前回の売上を取得することができます。
1 2 | df[ '前回の売上' ] = df[ '売上' ].shift( 1 ) print (df) |
実行結果:
日付 | 売上 | 前回の売上 | |
---|---|---|---|
0 | 2022-01-01 | 100 | NaN |
1 | 2022-01-02 | 200 | 100.0 |
2 | 2022-01-03 | 300 | 200.0 |
3 | 2022-01-04 | 400 | 300.0 |
4 | 2022-01-05 | 500 | 400.0 |
このように、shift関数を使うことで、前回の値を簡単に取得することができます。
データフレームでの前回値の計算方法
次に、データフレーム全体で前回値を計算する方法について解説します。
たとえば、以下のようなデータがあったとします。
1 2 3 4 5 6 | import pandas as pd data = { '日付' : [ '2022-01-01' , '2022-01-02' , '2022-01-03' , '2022-01-04' , '2022-01-05' ], '売上1' : [ 100 , 200 , 300 , 400 , 500 ], '売上2' : [ 200 , 300 , 400 , 500 , 600 ]} df = pd.DataFrame(data) print (df) |
この場合、shift関数を使って、前回の値を計算することができます。
1 | df.shift( 1 ) |
実行結果:
日付 | 売上1 | 売上2 | |
---|---|---|---|
0 | NaN | NaN | NaN |
1 | 2022-01-01 | 100.0 | 200.0 |
2 | 2022-01-02 | 200.0 | 300.0 |
3 | 2022-01-03 | 300.0 | 400.0 |
4 | 2022-01-04 | 400.0 | 500.0 |
このように、shift関数を使うことで、データフレーム全体で前回の値を計算することができます。
前回値を用いた差分計算の実践例
前回値を用いた差分計算は、時系列データの解析によく使われます。たとえば、以下のようなデータがあったとします。
1 2 3 4 | import pandas as pd data = { '日付' : [ '2022-01-01' , '2022-01-02' , '2022-01-03' , '2022-01-04' , '2022-01-05' ], '売上' : [ 100 , 200 , 300 , 400 , 500 ]} df = pd.DataFrame(data) |
この場合、前回の売上との差分を計算することで、売上の増加量を求めることができます。
1 2 3 | df[ '前回の売上' ] = df[ '売上' ].shift( 1 ) df[ '売上増加量' ] = df[ '売上' ] - df[ '前回の売上' ] print (df) |
実行結果:
日付 | 売上 | 前回の売上 | 売上増加量 | |
---|---|---|---|---|
0 | 2022-01-01 | 100 | NaN | NaN |
1 | 2022-01-02 | 200 | 100.0 | 100.0 |
2 | 2022-01-03 | 300 | 200.0 | 100.0 |
3 | 2022-01-04 | 400 | 300.0 | 100.0 |
4 | 2022-01-05 | 500 | 400.0 | 100.0 |
このように、前回値を用いた差分計算をすることで、時系列データの解析に役立てることができます。
前回値を活用したデータ分析: 時系列データ解析
前回値を活用することで、時系列データの解析を簡単に行うことができます。
たとえば、以下のような株価データがあったとします。
1 2 3 4 5 | import pandas as pd data = { '日付' : [ '2022-01-01' , '2022-01-02' , '2022-01-03' , '2022-01-04' , '2022-01-05' ], '株価' : [ 1000 , 1100 , 1200 , 1300 , 1400 ]} df = pd.DataFrame(data) print (df) |
この場合、前回の株価との差分を計算することで、株価の変化率を求めることができます。
1 2 3 | df[ '前回の株価' ] = df[ '株価' ].shift( 1 ) df[ '変化率' ] = (df[ '株価' ] - df[ '前回の株価' ]) / df[ '前回の株価' ] * 100 print (df) |
実行結果:
日付 | 株価 | 前回の株価 | 変化率 | |
---|---|---|---|---|
0 | 2022-01-01 | 1000 | NaN | NaN |
1 | 2022-01-02 | 1100 | 1000.0 | 10.0 |
2 | 2022-01-03 | 1200 | 1100.0 | 9.09 |
3 | 2022-01-04 | 1300 | 1200.0 | 8.33 |
4 | 2022-01-05 | 1400 | 1300.0 | 7.69 |
このように、前回値を用いることで、時系列データの解析に役立てることができます。
前回値の応用:変化率や増減率の算出
前回値を用いることで、変化率や増減率などの算出も簡単に行うことができます。
たとえば、以下のようなデータがあったとします。
1 2 3 4 5 | import pandas as pd data = { '商品名' : [ 'A' , 'B' , 'C' , 'D' , 'E' ], '売上' : [ 1000 , 2000 , 1500 , 3000 , 2500 ]} df = pd.DataFrame(data) print (df) |
この場合、前回の売上との変化率を計算することで、商品ごとの売上の増加率を求めることができます。
1 2 3 4 | df[ '前回の売上' ] = df[ '売上' ].shift( 1 ) df[ '増加量' ] = df[ '売上' ] - df[ '前回の売上' ] df[ '増加率' ] = df[ '増加量' ] / df[ '前回の売上' ] * 100 print (df) |
実行結果:
商品名 | 売上 | 前回の売上 | 増加量 | 増加率 | |
---|---|---|---|---|---|
0 | A | 1000 | NaN | NaN | NaN |
1 | B | 2000 | 1000.0 | 1000.0 | 100.0 |
2 | C | 1500 | 2000.0 | -500.0 | -25.0 |
3 | D | 3000 | 1500.0 | 1500.0 | 100.0 |
4 | E | 2500 | 3000.0 | -500.0 | -16.67 |
このように、前回値を用いることで、変化率や増減率の算出が簡単にできます。
まとめ
今回は、pandasで前回値を活用する方法について解説しました。
まず、shift関数を使った前回値の取得方法について解説しました。次に、データフレームでの前回値の計算方法について解説し、前回値を用いた差分計算の実践例についても紹介しました。
また、前回値を活用したデータ分析についても解説し、株価の変化率や商品の売上の増加率などの算出方法についても紹介しました。
pandasを使うことで、前回値を簡単に取得し、時系列データの解析や変化率・増減率の算出など、様々なデータ分析に役立てることができます。