📅  最后修改于: 2023-12-03 15:25:49.674000             🧑  作者: Mango
当使用 pandas 处理数据时,我们经常需要找出两个数据帧之间的差异。下面是一些方法。
可以使用 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('两个数据帧不相等')
该代码将输出 "两个数据帧相等"。
可以使用 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 行。
可以使用 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 数据帧之间的差异的方法。