比较 Julia 中的 2 个数据帧是否相同

JAK*_*AKE 2 julia

想象一下我有 2 个数据框,它们来自 2 个数据库。两个数据框应该完全相同,并且它们都有字符串和数字。有没有办法比较2个数据框是否相同并列出不同的记录?

在此输入图像描述

Bog*_*ski 5

目前还不清楚你有什么输入以及你想要什么输出。在我的回答中,我假设您使用 DataFrames.jl 并且您想要一个不同的行列表。

假设数据帧是df1df2

  1. 如何判断两个数据框是否相同:
df1 == df2 # if data frames do not have missing values in them

isequal(df1, df2) # if data frames do have missing values in them
Run Code Online (Sandbox Code Playgroud)

(造成差异的原因是 Julia 总体上是missing敏感的)

  1. 如果它们不相等,则首先检查它们是否具有相同的列名:
names(df1) == names(df2)
Run Code Online (Sandbox Code Playgroud)
  1. 如果列名确实相等,这里有一种获取Bool不匹配行向量的方法:
.!=(eachrow(df1), eachrow(df2)) # no missings
.!isequal.(eachrow(df1), eachrow(df2)) # with missings
Run Code Online (Sandbox Code Playgroud)

(还有其他选项可能比这个更快,但这是最简单的)