2列の値を比較して大きい方の数字を抽出する

※当サイトはアフィリエイト広告を利用しています

データ分析

Pandasなどで作成しているデータフレームの中の2つの列の値を比較して大きい方/小さい方の数字を新しい列に抽出する方法。

コード

# サンプルデータセットの作成
import pandas as pd
import numpy as np

DF = pd.DataFrame({'A': [1,3,5,7,9],'B':[8,6,4,2,1]})
# 	A	B
# 0	1	8
# 1	3	6
# 2	5	4
# 3	7	2
# 4	9	1
array_A = np.array(DF['A'])
array_B = np.array(DF['B'])

#値の大きい方をカラムCに格納する
maximum = np.maximum(array_A ,array_B)
DF['C'] = maximum 

# 	A	B	C
# 0	1	8	8
# 1	3	6	6
# 2	5	4	5
# 3	7	2	7
# 4	9	1	9

‘A’: [1,3,5,7,9]、’B’:[8,6,4,2,1]にて各行のうち数字の大きい方’C’:[8,6,5,7,9]を取得することができました。

値の小さい方を抽出する

また、maximum → minimumに変更することで、値の小さい方を抽出するということもできます

#値の小さい方をカラムCに格納する
minimum = np.minimum(array_A ,array_B)
DF['C'] = minimum 

# 	A	B	C
# 0	1	8	1
# 1	3	6	3
# 2	5	4	4
# 3	7	2	2
# 4	9	1	1

数字型だけでなく日付型などにも対応しているので、2つの日付列のうち新しい方(古い方)などのデータ抽出も可能となります。

解説

値の比較はnumpyを利用すると便利。Pandasで加工しているデータフレームをnp.array()でnumpyの配列に変換、その後np.maximumで比較

この記事を読んだ人がよく見ています

タイトルとURLをコピーしました