行の違いに関するデータフレームの比較
同一の行と列を持つ 2 つのデータフレームを比較する場合、単純な比較演算 (df1 != df2)で十分です。ただし、データフレームに異なる行セットがある場合、違いを特定するには別のアプローチが必要です。
Concat、Group、Filter
データフレームを比較する 1 つの方法行の相違点は、それらを連結し、列ごとにグループ化し、一意の行をフィルタリングすることです。次のコードはこれを示しています:
<code class="python">df = pd.concat([df1, df2]) df = df.reset_index(drop=True) df_gpby = df.groupby(list(df.columns)) idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1] result = df.reindex(idx)</code>
連結されたデータフレーム (df) は、そのすべての列 (df_gpby) によってグループ化されます。 「groups.values()」メソッドはタプルの反復可能値を返します。各タプルは一意の行のインデックスを表します。長さ (len(x) == 1) でタプルをフィルター処理すると、1 つのデータフレームのみに存在する行が特定されます。最後に、フィルタリングされたインデックス (idx) を使用してデータフレームのインデックスを再作成すると、行の差分を含むデータフレームが生成されます。
出力例
提供されているサンプル データフレームの使用:
>>> result Date Fruit Num Color 9 2013-11-25 Orange 8.6 Orange 8 2013-11-25 Apple 22.1 Red
この出力には、df2 にはあるが df1 には存在しない行が表示されます。
以上がデータフレームを比較して行の違いを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。