📌  相关文章
📜  找出两个 pandas 数据帧之间的差异 - Python (1)

📅  最后修改于: 2023-12-03 15:25:49.674000             🧑  作者: Mango

找出两个 pandas 数据帧之间的差异 - Python

当使用 pandas 处理数据时,我们经常需要找出两个数据帧之间的差异。下面是一些方法。

方法一:使用 .equals() 比较数据帧

可以使用 pandas 的 .equals() 比较两个数据帧是否相等。该方法返回一个布尔值。

import pandas as pd

df1 = pd.DataFrame({'a':[1, 2, 3], 'b':[4, 5, 6]})
df2 = pd.DataFrame({'a':[1, 2, 3], 'b':[4, 5, 6]})

if df1.equals(df2):
    print('两个数据帧相等')
else:
    print('两个数据帧不相等')

该代码将输出 "两个数据帧相等"。

方法二:使用 .compare() 比较数据帧

可以使用 pandas 的 .compare() 方法比较两个数据帧,并显示它们之间的差异。

import pandas as pd

df1 = pd.DataFrame({'a':[1, 2, 3], 'b':[4, 5, 6]})
df2 = pd.DataFrame({'a':[1, 2, 3], 'b':[4, 5, 8]})

print(df1.compare(df2))

该代码将输出以下内容:

Empty DataFrame
Columns: [b]
Index: [2]

这说明 df1 和 df2 之间的差异在列 'b' 中的第 3 行。

方法三:使用 pd.concat() 比较数据帧

可以使用 pandas 的 pd.concat() 方法比较两个数据帧,并显示它们之间的差异。

import pandas as pd

df1 = pd.DataFrame({'a':[1, 2, 3], 'b':[4, 5, 6]})
df2 = pd.DataFrame({'a':[1, 2, 3], 'b':[4, 5, 8]})

df_concat = pd.concat([df1, df2], axis=1, keys=['df1', 'df2'])
df_diff = df_concat[df_concat['df1'] != df_concat['df2']]

print(df_diff)

该代码将输出以下内容:

  df1    df2   
   b     b    
2   6     8    

这说明 df1 和 df2 之间的差异在列 'b' 中的第 3 行。

以上就是找出两个 pandas 数据帧之间的差异的方法。