パンダ: 2 つの列の違いを見つける方法


pandas DataFrame 内の 2 つの列の違いを見つけるには、次の構文を使用できます。

 df[' difference '] = df[' column1 '] - df[' column2 ']

次の例は、この構文を実際に使用する方法を示しています。

例 1: 2 つの列間の違いを見つける

連続 8 つの販売期間における 2 つの地域 (A と B) の合計売上を示す次のパンダ データフレームがあるとします。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' period ': [1, 2, 3, 4, 5, 6, 7, 8],
                   ' A_sales ': [12, 14, 15, 13, 18, 20, 19, 24],
                   ' B_sales ': [14, 19, 20, 22, 24, 20, 17, 23]})

#view DataFrame
df

period A_sales B_sales
0 1 12 14
1 2 14 19
2 3 15 20
3 4 13 22
4 5 18 24
5 6 20 20
6 7 19 17
7 8 24 23

次のコードは、各販売期間の地域 B と地域 A の売上の差を計算する方法を示しています。

 #add new column to represent difference between B sales and A sales
df[' diff '] = df[' B_sales '] - df[' A_sales ']

#view DataFrame
df

        period A_sales B_sales diff
0 1 12 14 2
1 2 14 19 5
2 3 15 20 5
3 4 13 22 9
4 5 18 24 6
5 6 20 20 0
6 7 19 17 -2
7 8 24 23 -1

pandas.Series.abs()関数を使用して、売上の絶対的な差を計算することもできます。

 #add new column to represent absolute difference between B sales and A sales
df[' diff '] = pd. Series . abs (df[' B_sales '] - df[' A_sales '])

#view DataFrame
df

	period A_sales B_sales diff
0 1 12 14 2
1 2 14 19 5
2 3 15 20 5
3 4 13 22 9
4 5 18 24 6
5 6 20 20 0
6 7 19 17 2
7 8 24 23 1

例 2: 条件に基づいて列間の差異を検出する

データフレームをフィルターして、列間の差が特定の値より小さいまたは大きい行のみを表示することもできます。

たとえば、次のコードは、地域 A の売上が地域 B の売上よりも大きい行のみを返します。

 #add new column to represent difference between B sales and A sales
df[' diff '] = df[' B_sales '] - df[' A_sales ']

#display rows where sales in region A is greater than sales in region B
df[df[' diff ']< 0 ]


        period A_sales B_sales diff
6 7 19 17 -2
7 8 24 23 -1

追加リソース

パンダ: 2 つの線の違いを見つける方法
パンダ: 複数の列をグループ化して集計する方法

コメントを追加する

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