要比较两个来自CSV文件的Pandas数据帧,可以按照以下步骤进行:
import pandas as pd
df1 = pd.read_csv('file1.csv')
df2 = pd.read_csv('file2.csv')
可以使用以下方法来比较两个数据帧:
equals()
方法:该方法可以比较两个数据帧的元素是否相等。返回一个布尔值,表示两个数据帧是否相等。is_equal = df1.equals(df2)
compare()
方法:该方法可以比较两个数据帧的元素,并返回一个包含差异的数据帧。使用keep_shape=True
参数可以保持输出的数据帧形状与原始数据帧相同。diff = df1.compare(df2, keep_shape=True)
assert_frame_equal()
函数:该函数可以比较两个数据帧并验证它们是否相等。如果两个数据帧不相等,将引发异常。from pandas.testing import assert_frame_equal
try:
assert_frame_equal(df1, df2)
is_equal = True
except AssertionError:
is_equal = False
if is_equal:
print("两个数据帧相等")
else:
print("两个数据帧不相等")
print(diff)
完整的代码示例:
import pandas as pd
from pandas.testing import assert_frame_equal
# 读取CSV文件并创建数据帧
df1 = pd.read_csv('file1.csv')
df2 = pd.read_csv('file2.csv')
# 比较两个数据帧
try:
assert_frame_equal(df1, df2)
is_equal = True
except AssertionError:
is_equal = False
# 打印或处理比较结果
if is_equal:
print("两个数据帧相等")
else:
print("两个数据帧不相等")
diff = df1.compare(df2, keep_shape=True)
print(diff)
注意:
header
参数指定列名所在的行号。下一篇:比较两个类的字段名称和结构