パンダ: 2 つの線の違いを見つける方法
DataFrame.diff()関数を使用すると、pandas DataFrame 内の 2 つの行の違いを見つけることができます。
この関数は次の構文を使用します。
DataFrame.diff(期間=1、軸=0)
金:
- period:差分を計算する前の行の数。
- 軸:行 (0) または列 (1) の違いを見つけます。
次の例は、この関数を実際に使用する方法を示しています。
例 1: 前の各行間の違いを見つける
次のパンダ データフレームがあるとします。
import pandas as pd #createDataFrame df = pd. DataFrame ({' period ': [1, 2, 3, 4, 5, 6, 7, 8], ' sales ': [12, 14, 15, 15, 18, 20, 19, 24], ' returns ': [2, 2, 3, 3, 5, 4, 4, 6]}) #view DataFrame df period sales returns 0 1 12 2 1 2 14 2 2 3 15 3 3 4 15 3 4 5 18 5 5 6 20 4 6 7 19 4 7 8 24 6
次のコードは、DataFrame の現在の各行と前の行の間の違いを見つける方法を示しています。
#add new column to represent sales differences between each row df[' sales_diff '] = df[' sales ']. diff () #view DataFrame df period sales returns sales_diff 0 1 12 2 NaN 1 2 14 2 2.0 2 3 15 3 1.0 3 4 15 3 0.0 4 5 18 5 3.0 5 6 20 4 2.0 6 7 19 4 -1.0 7 8 24 6 5.0
前のいくつかの行間の違いも見つけることができることに注意してください。たとえば、次のコードは、現在の各行と 3 行前に表示された行との違いを見つける方法を示しています。
#add new column to represent sales differences between current row and 3 rows earlier df[' sales_diff '] = df[' sales ']. diff (periods= 3 ) #view DataFrame df period sales returns sales_diff 0 1 12 2 NaN 1 2 14 2 NaN 2 3 15 3 NaN 3 4 15 3 3.0 4 5 18 5 4.0 5 6 20 4 5.0 6 7 19 4 4.0 7 8 24 6 6.0
例 2: 条件に基づいて違いを見つける
DataFrame をフィルターして、現在の行と前の行の差が特定の値より小さいまたは大きい行を表示することもできます。
たとえば、次のコードは、現在の行の値が前の行の値より小さい行のみを返します。
import pandas as pd #createDataFrame df = pd. DataFrame ({' period ': [1, 2, 3, 4, 5, 6, 7, 8], ' sales ': [12, 14, 15, 13, 18, 20, 19, 24], ' returns ': [2, 2, 3, 3, 5, 4, 4, 6]}) #find difference between each current row and the previous row df[' sales_diff '] = df[' sales ']. diff () #filter for rows where difference is less than zero df = df[df[' sales_diff ']< 0 ] #view DataFrame df period sales returns sales_diff 3 4 13 3 -2.0 6 7 19 4 -1.0
追加リソース
Pandas の複数の列の一意の値を見つける方法
Pandas DataFrame を列値でフィルタリングする方法
Pandas DataFrame でインデックスによって行を選択する方法