比较数据帧以识别差异对于数据分析至关重要。在这个问题中,我们给定了两个数据帧,df1 和 df2,需要找到 df2 中存在但 df1 中不存在的行。
使用 != 等运算符进行直接比较如果数据帧具有不同的结构,可能会导致错误。更好的方法是连接数据帧,重置它们的索引,然后比较它们。使用 df1 == df2 将生成一个布尔矩阵,其中 True 表示两个数据帧中都存在行,False 表示差异。
接下来,我们可以执行分组操作在连接的数据帧上识别唯一的行。目标是找到数据框中仅出现一次的行。我们可以通过检查组的长度来实现这一点;长度为 1 的行代表唯一记录。
最后,我们可以使用识别的唯一行索引来过滤数据帧。这将为我们提供 df2 中 df1 中不存在的行。
例如,考虑提供的示例数据帧:
<code class="python">import pandas as pd df1 = ... df2 = ... # Concatenate dataframes df = pd.concat([df1, df2]) df = df.reset_index(drop=True) # Group by unique values df_gpby = df.groupby(list(df.columns)) # Get unique row indices idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1] # Filter dataframe result = df.reindex(idx)</code>
结果数据帧将包含 df2 中不存在于 df1 中的行。
以上是如何识别 df2 中存在但 df1 中不存在的行?的详细内容。更多信息请关注PHP中文网其他相关文章!