Pandas で列をオフセットする方法: 例付き


shift()関数を使用して、pandas DataFrame の列の値を上下にシフトできます。

 #shift values down by 1
df[' column1 '] = df[' column1 ']. shift (1)

#shift values up by 1
df[' column1 '] = df[' column1 ']. shift (-1)

次の例は、実際に次の pandas DataFrame でこの関数を使用する方法を示しています。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' product ': ['A', 'B', 'C', 'D', 'E', 'F'],
                   ' sales ': [4, 7, 8, 12, 15, 19]})

#view DataFrame
df

        product sales
0 to 4
1 B 7
2 C 8
3 D 12
4 E 15
5 F 19

例 1: 列を上または下に移動する

次のコードは、「product」列のすべての値を 1 ずつ下にシフトする方法を示しています。

 #shift all 'product' values down by 1
df[' product '] = df[' product ']. shift (1)

#view updated DataFrame
df

	product sales
0 NaN 4
1 to 7
2 B 8
3 C 12
4 D 15
5 E 19

「product」列の各値が 1 ずつシフトされ、列の最初の値が NaN に変更されていることに注意してください。

また、Product 列の最後の値 (「F」) がデータフレームから完全に削除されていることにも注意してください。

DataFrame に値「F」を保持するには、まず DataFrame の下部に空白行を追加してから、オフセットを実行する必要があります。

 import numpy as np

#add empty row to bottom of DataFrame
df. loc [len(df. index )] = [np. nah , np. no ]

#shift all 'product' values down by 1
df[' product '] = df[' product ']. shift (1)

#view updated DataFrame
df

	product sales
0 NaN 4.0
1 to 7.0
2B 8.0
3C 12.0
4 D 15.0
5 E 19.0
6 F NaN

「F」値が「product」列の最後の値として保持されることに注意してください。

例 2: 複数の列を上下に移動する

次のコードは、「product」列と「sales」列のすべての値を 2 ずつ上にシフトする方法を示しています。

 #shift all 'product' and 'sales' values up by 2
df[[' product ', ' sales ']] = df[[' product ', ' sales ']]. shift (-2)

#view updated DataFrame
df

        product sales
0 C 8.0
1 D 12.0
2 E 15.0
3 F 19.0
4 NaN NaN
5 NaN NaN

「product」列と「sales」列の各値が 2 ずつ上にシフトされ、各列の下 2 つの値が NaN に変更されていることに注意してください。

: ここで、 shift()関数の完全なドキュメントを見つけることができます。

追加リソース

次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。

Pandas DataFrame に行を追加する方法
Pandas DataFrame に列を追加する方法
Pandas DataFrame にヘッダー行を追加する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です