比較兩個資料幀並識別差異
在您的場景中,您有兩個資料幀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中文網其他相關文章!