比较两个数据帧并识别差异
在您的场景中,您有两个数据帧 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中文网其他相关文章!