for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。
Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。
Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。
Q&A
解決済
1回答
948閲覧
総合スコア9
0グッド
0クリップ
投稿2018/07/24 10:52
0
pandasのDataFrameにて,for文で行ごとに処理するとき, 前後の数行を参照したいときがあります. 何か方法はありますか.
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
2018/07/24 11:04
回答1件
ベストアンサー
ループ処理を行う前に予め DataFrame.shift() 使って、前後の行のデータをコピーした列データを作成しておけば良いのでは。
DataFrame.shift()
Python1import pandas as pd 2 3df = pd.DataFrame({'val': [1,2,3,4,5]}) 4 5df['prev_val'] = df['val'].shift(1) 6df['next_val'] = df['val'].shift(-1) 7 8print(df) 9# val prev_val next_val 10#0 1 NaN 2.0 11#1 2 1.0 3.0 12#2 3 2.0 4.0 13#3 4 3.0 5.0 14#4 5 4.0 NaN
Python
1import pandas as pd 2 3df = pd.DataFrame({'val': [1,2,3,4,5]}) 4 5df['prev_val'] = df['val'].shift(1) 6df['next_val'] = df['val'].shift(-1) 7 8print(df) 9# val prev_val next_val 10#0 1 NaN 2.0 11#1 2 1.0 3.0 12#2 3 2.0 4.0 13#3 4 3.0 5.0 14#4 5 4.0 NaN
投稿2018/07/24 11:09
総合スコア15898
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.47%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
pandasのfor文中での前後行参照