Python

2つのpandas.DataFrameが一致しているか比較する方法

データフレームってどうやって比較るのん?


表形式のデータを扱うのに便利なpandas.DataFrame

n行m列の表形式データを持つデータフレームだが、ときには2つのデータフレームの中のデータが全て一致しているかどうか確認したいこともある。

しかしどうやって比較すればよいのか。

そこで今回は2つのpandas.DataFrameが一致しているか比較する方法について紹介する。

この記事を書いている人


システムエンジニア、AIエンジニアと、IT業界で10年以上働いている中堅。PythonとSQLが得意。

記事を読むメリット

2つのpandas.DataFrameが一致しているか比較する方法がわかり、pandasの比較が得意になる


2つのpandas.DataFrameが一致しているか比較する方法

2つのpandas.DataFrameが一致しているか比較するには equals() というメソッドを用いる。


比較演算子 == じゃダメなの?


こう思う人もいるかと思うので、以下のデータを使って紹介する。

DATA

import pandas as pd

data_list1 = [
    ["a",12,100],
    ["b",12,105],
    ["c",12,90],
    ["d",13,85]
]
col_list1 = ["id","age","score"]
df1 = pd.DataFrame(data=data_list1, columns=col_list1)
print(df1)

#   id  age  score
# 0  a   12    100
# 1  b   12    105
# 2  c   12     90
# 3  d   13     85

data_list2 = [
    ["a",12,100],
    ["b",12,105],
    ["c",12,90],
    ["d",13,85]
]
df2 = pd.DataFrame(data=data_list2, columns=col_list1)
print(df2)

#   id  age  score
# 0  a   12    100
# 1  b   12    105
# 2  c   12     90
# 3  d   13     85

data_list3 = [
    ["aa",12,105],
    ["b",12,105],
    ["c",12,90],
    ["d",13,85]
]
df3 = pd.DataFrame(data=data_list3, columns=col_list1)
print(df3)

#    id  age  score
# 0  aa   12    105
# 1   b   12    105
# 2   c   12     90
# 3   d   13     85


3つのデータフレーム df1,df2,df3 を用意し、df1df2の中身だけ同じにしてある。



比較演算子 "==" を使った場合

比較演算子 == でデータフレームを比較するとどうなるのか。

実際にやってみると以下のようになる。

SAMPLE

print(df1==df2)

#      id   age  score
# 0  True  True   True
# 1  True  True   True
# 2  True  True   True
# 3  True  True   True

print(df1==df3)

#       id   age  score
# 0  False  True  False
# 1   True  True   True
# 2   True  True   True
# 3   True  True   True


比較演算子 == でデータフレームを比較すると、データフレーム単位の比較ではなく要素同士を比較したデータフレームが返ってくる

これではデータフレームが一致しているかではなく、データフレームのどの要素が一致しているかの比較になってしまう。



equalsを使った場合

先に述べたが、データフレームを比較するなら equals() を使う。

使い方は以下のように使う。

SAMPLE

print(df1.equals(df2))

# True

print(df1.equals(df3))

# False


df1.equals(df2) のように比較相手のデータフレームをメソッドの引数にする。

すると全ての要素が一致していれば True、ひとつでも違っていれば False が返ってくる。




まとめ

今回は2つのpandas.DataFrameが一致しているか比較する方法について解説した。

2つのpandas.DataFrameを比較するポイントは以下の通り。

ココがポイント

  • データフレーム同士を比較したいならequals()
  • 比較演算子 == は要素同士の比較


わかってしまえば簡単だね
ちゃんと機能を用意してくれた先人は偉大ですね



他にもpandas関連の記事もあるので、もし気になったら見てみて欲しい。

ITipsと同じようなブログを作る方法

ブログに興味がありますか?

もしブログに興味がある場合は↓このページ↓を参考にすれば、ITipsと同じ構成でブログを作ることができます

サーバー、ドメイン、ASPと【ブログに必要なものは全て】このページに書きました。
同じ構成でブログ作るのはいいけど、記事はマネしないでネ (TДT;)

ランキング参加中

にほんブログ村 IT技術ブログへ

他にもブログやSNSで紹介してくれると励みになります。

はてブのコメントで酷評されると泣きます(´;ω;`)

-Python
-

Translate »

© 2022 ITips