データフレームの違いを効果的に比較して表示する
はじめに
2 つの違いの識別と理解データフレームはデータ分析における一般的なタスクです。過去のデータを現在の傾向と比較する場合でも、データベース内の変更を追跡する場合でも、これらの変更を正確に強調表示する機能は非常に重要です。
問題ステートメント
2 つのデータフレームがあるとします。 「StudentRoster Jan-1」と「StudentRoster Jan-2」という 2 つの異なる月の学生名簿情報が含まれています。私たちの目標は、これら 2 つのデータフレーム間の変更を明確に表示し、各行の新しい値と古い値の両方を示す HTML テーブルを作成することです。
ソリューション
変更された行の特定
最初のステップは、実際に変更された行を特定することです。 any() 関数を使用して、各行の違いを確認できます。
<code class="python">import pandas as pd import numpy as np ne = (df1 != df2).any(1)</code>
これは、True が変更された行を示すブール系列を返します。
変更された値の抽出
次に、実際に変更された値を抽出する必要があります。 .stack() メソッドを使用してデータフレームを 1 つの列に変換し、変更された値についてこの列をフィルター処理します。
<code class="python">ne_stacked = (df1 != df2).stack() changed = ne_stacked[ne_stacked] changed.index.names = ['id', 'col']</code>
これにより、変更された値のインデックスと列の名前が得られます。
以前の値と新しい値の抽出
変更された値のインデックスを使用して、変更されたエントリごとに以前の値と新しい値を抽出できます:
<code class="python">difference_locations = np.where(df1 != df2) changed_from = df1.values[difference_locations] changed_to = df2.values[difference_locations]</code>
HTML テーブルの作成
最後に、抽出した値を組み合わせて HTML テーブルを作成できます:
<code class="python">pd.DataFrame({'from': changed_from, 'to': changed_to}, index=changed.index)</code>
このデータフレームには 2 つの列が含まれています: "from"および「to」は、変更された各エントリの元の値と新しい値を表示します。データフレームのインデックスは、変更が発生した行と列を識別します。
この HTML テーブルは、変更された値とその以前の値と新しい値を並べて表示することで、変更の明確かつ包括的な概要を提供します。 2 つのデータフレーム間。
以上がPython を使用してデータフレームの違いを効果的に比較および表示する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。