比较 DataFrame 的行差异
比较两个具有相同行和列的 DataFrame 时,简单的比较操作 (df1 != df2)就足够了。但是,如果数据帧具有不同的行集,则需要采用不同的方法来识别差异。
Concat、Group 和 Filter
一种比较数据帧的方法行差异是将它们连接起来,按列分组,并过滤唯一的行。以下代码说明了这一点:
<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) 过滤元组可识别仅存在于一个数据帧中的行。最后,使用过滤索引 (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中文网其他相关文章!