ホームページ >バックエンド開発 >Python チュートリアル >Pandas DataFrame を比較して違いを視覚化する方法
データフレームを比較し、並べて比較して違いを視覚化する
2 つの Pandas データフレームが与えられた場合、タスクは変更を特定して表示することですユーザーフレンドリーな形式でそれらの間を共有します。目標は、変更された行を視覚的に強調表示し、元の値と更新された値の両方を表示する HTML テーブルを出力することです。
行の変更の識別
これを達成するには、次のようにします。変更された行を特定する必要があります。これは、ne (等しくない) 演算を利用することで実現できます。この演算は、2 つのデータフレーム内の対応する値が異なるすべての要素のブール マスクを返します。
<code class="python">ne = (df1 != df2).any(1)</code>
変更されたエントリの検索
変更のある行が特定されたら、stack() 関数を使用して変更された特定のエントリを見つけることができます。積み上げた結果をブールマスクに基づいてフィルタリングすることで、変更されたエントリを抽出することが可能になります。
<code class="python">changed = (df1 != df2).stack()[ne_stacked] changed.index.names = ['id', 'col']</code>
変更された値の抽出
次に、元のエントリ更新された値は、where 関数を使用して抽出できます。これにより、元の値と変更された値をそれぞれ表す「from」列と「to」列を使用して、変更を要約する DataFrame を作成できます。
<code class="python">difference_locations = np.where(df1 != df2) changed_from = df1.values[difference_locations] changed_to = df2.values[difference_locations]</code>
HTML テーブルの生成
最後に、抽出された変更を HTML テーブルに整理して、2 つのデータフレーム間の違いを視覚化できます。このテーブルは、Pandas の to_html メソッドなどの HTML レンダリング エンジンを使用してレンダリングでき、ユーザー フレンドリーな並べて比較できます。
<code class="python">pd.DataFrame({'from': changed_from, 'to': changed_to}, index=changed.index).to_html()</code>
以上がPandas DataFrame を比較して違いを視覚化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。