首頁  >  文章  >  後端開發  >  如何比較兩個資料幀並根據特定列提取差異?

如何比較兩個資料幀並根據特定列提取差異?

Patricia Arquette
Patricia Arquette原創
2024-10-19 21:14:02346瀏覽

How to Compare Two Dataframes and Extract Differences Based on Specific Columns?

比較兩個資料幀並識別差異

在您的場景中,您有兩個資料幀df1 和df2,具有相同的結構和行索引。您的目標是透過比較日期和水果值來確定哪些行存在於 df2 而不是 df1。

直接比較

使用 df1 != df2 的方法不合適,因為它需要相同標記的資料幀。刪除日期索引也無法解決問題。

串聯和分組

要找到差異,您可以將資料幀串聯成單一資料幀df:

<code class="python">import pandas as pd

df = pd.concat([df1, df2])
df = df.reset_index(drop=True)</code>

按df 的所有列進行分組以識別唯一記錄:

<code class="python">df_gpby = df.groupby(list(df.columns))</code>

過濾唯一記錄

接下來,擷取唯一記錄的索引,即群組大小為1 的行:

<code class="python">idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1]</code>

最後,您可以使用這些索引來過濾連接的資料幀,以僅獲取df2 獨有的行:

<code class="python">df.reindex(idx)</code>

這將傳回一個包含所需差異的資料框:

         Date   Fruit   Num   Color
9  2013-11-25  Orange   8.6  Orange
8  2013-11-25   Apple  22.1     Red

以上是如何比較兩個資料幀並根據特定列提取差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn