【毎日Python】Pythonでデータフレームのデータをずらす方法|DataFrame.shift

shift
こつこつPython

Pythonでデータをずらす方法です。
使用するのは、PythonのPandasライブラリのshiftメソッドです。

このような簡単なデータフレームを作成します。

import pandas as pd

df = pd.DataFrame({'No.1': [10, 15, 12, 48, 32],
'No.2': [29, 1, 43, 18, 25],
'No.3': [38, 28, 16, 22, 49]},
index=['A', 'B', 'C', 'D', 'E'])
df

実行結果:
main_df

shiftメソッドの引数に何も指定せずに実行してみましょう。
データが1行分下にずれたのが確認できました。
このように、ずれた行は欠損値になります。

df.shift()

実行結果:
df01

次に、データをずらす行数を指定してみましょう。
今回は2を指定して実行します。
データを2行分下にずらすことができました。

df.shift(2)

実行結果:
df02

データを列方向にずらすには、引数にaxis=1を指定します。
実行します。
列方向をデータをずらすことができました。

df.shift(axis=1)

実行結果:
df03

最後に、このような時系列データで試してみましょう。

df_date = pd.DataFrame({'x': range(1, 6)}, index=pd.date_range('2020-07-01', '2020-07-05'))
df_date 

実行結果:
time_df

引数freqに期間を指定すると、その期間分データをずらすことができます。
実行します。
5日分ずらすことができました。

df_date.shift(freq='5D')

実行結果:
df04

関連メソッド

【毎日Python】Pythonでデータフレームの行ごと・列ごとの差を取得する方法|DataFrame.diff

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト