Pandas DataFrame の比較メソッド

PythonPythonBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、pandas ライブラリの compare() メソッドを使って 2 つの DataFrame を比較し、その違いを特定する方法を学びます。compare() メソッドは、2 つの DataFrame 間の不一致を見つける便利な方法で、横並びに比較して異なる値を表示します。

VM のヒント

VM の起動が完了したら、左上隅をクリックして Notebook タブに切り替え、Jupyter Notebook を使って練習します。

時々、Jupyter Notebook が読み込み終わるまで数秒待つ必要があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

必要なライブラリをインポートする

まず、compare() メソッドを使うために pandas ライブラリをインポートする必要があります。次のコードを実行します。

import pandas as pd

DataFrame を作成する

次に、比較するための 2 つの DataFrame を作成します。各 DataFrame は同じラベルを持っている必要がありますが、値は異なっていてもかまいません。DataFrame を作成するには、次のコードを実行します。

df1 = pd.DataFrame([['Abhishek',100,'Science',90], ['Anurag',101,'Science',85]], columns=['Name', 'Roll No', 'Subject', 'Marks'])
df2 = pd.DataFrame([['Abhishek',100,'Maths',95], ['Anurag',101,'Maths',80]], columns=['Name', 'Roll No', 'Subject', 'Marks'])

DataFrame を比較する

これで、2 つの DataFrame を比較して違いを表示するために compare() メソッドを使うことができます。このメソッドは 2 つの DataFrame 間の値を比較し、異なる値を横並びに表示した新しい DataFrame を返します。次のコードを実行します。

differences = df1.compare(df2)
print(differences)

DataFrame を変更して再度比較する

どちらかの DataFrame の値を変更し、更新された違いを見るために再度比較することができます。2 番目の DataFrame の値を変更するには、次のコードを実行します。

df2.at[1, 'Marks'] = 85

その後、ステップ 3 の比較コードを再度実行して、更新された違いを確認します。

整合軸と等しい値の含め方を指定する

結果の DataFrame における整合軸と等しい値の含め方も指定できます。既定では、整合軸は 1(列)に設定され、等しい値は含まれません。これらのオプションを示すには、次のコードを実行します。

differences_axis_0 = df1.compare(df2, align_axis=0)
differences_keep_equal = df1.compare(df2, keep_equal=True)

まとめ

この実験では、pandas ライブラリの compare() メソッドを使って 2 つの DataFrame を比較する方法を学びました。このメソッドを使うと、異なる値を横並びに表示することで DataFrame 間の違いを特定できます。また、結果の DataFrame における整合軸と等しい値の含め方を指定する方法も学びました。これらの知識を使えば、データセット間の違いを簡単に比較して分析できるようになりました。