看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
equals()
是 pandas 中用于比较两个 DataFrame 或 Series 是否相等的方法。该方法检查两个对象中的数据是否完全相同,并返回一个布尔值。
DataFrame.equals(other)
DataFrame
或 Series
bool
True
表示两个对象的数据和索引完全相同。False
表示两个对象的数据或索引不同。equals()
可以用来验证两个数据集是否在某个步骤后仍保持相同。equals()
来验证处理结果是否符合预期。df = pd.DataFrame({1: [10], 2: [20]})
df
'''
1 2
0 10 20
'''
DataFrame df和exactly_equal的元素和列标签具有相同的类型和值,这将返回True。
exactly_equal = pd.DataFrame({1: [10], 2: [20]})
exactly_equal
'''
1 2
0 10 20
'''
df.equals(exactly_equal)
# True
DataFrame df和 different_column_type 具有相同的元素类型和值,但列标签的类型不同,这仍将返回 True。
different_column_type = pd.DataFrame({1.0: [10], 2.0: [20]})
different_column_type
'''
1.0 2.0
0 10 20
'''
df.equals(different_column_type)
# True
DataFrame df和different_data_type对于其元素的相同值具有不同的类型,即使它们的列标签是相同的值和类型,也会返回False。
different_data_type = pd.DataFrame({1: [10.0], 2: [20.0]})
different_data_type
'''
1 2
0 10.0 20.0
'''
df.equals(different_data_type)
# False
例1: 比较两个相同的 DataFrame
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]
})
# 比较 df1 和 df2 是否相等
result = df1.equals(df2)
print(df1)
print(df2)
print(result)
输出:
'''
A B
0 1 4
1 2 5
2 3 6
A B
0 1 4
1 2 5
2 3 6
True
'''
在这个例子中,df1
和 df2
的数据完全相同,因此 equals()
返回 True
。
例2: 比较两个不同的 DataFrame
import pandas as pd
# 构造示例数据
df1 = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6]
})
df3 = pd.DataFrame({
'A': [1, 2, 3],
'B': [7, 8, 9]
})
# 比较 df1 和 df3 是否相等
result = df1.equals(df3)
print(df1)
print(df3)
print(result)
输出:
'''
A B
0 1 4
1 2 5
2 3 6
A B
0 1 7
1 2 8
2 3 9
False
'''
在这个例子中,df1
和 df3
的数据不同,因此 equals()
返回 False
。
例3: 比较两个索引不同的 DataFrame
import pandas as pd
# 构造示例数据
df1 = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6]
})
df4 = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6]
}, index=[1, 2, 3])
# 比较 df1 和 df4 是否相等
result = df1.equals(df4)
print(df1)
print(df4)
print(result)
输出:
'''
A B
0 1 4
1 2 5
2 3 6
A B
1 1 4
2 2 5
3 3 6
False
'''
在这个例子中,虽然 df1
和 df4
的数据相同,但它们的索引不同,因此 equals()
返回 False
。
equals()
方法是判断两个 pandas 对象是否完全相同的简单而有效的工具。它不仅考虑数据的内容,还包括索引的比较,因此非常适合用于数据验证和测试场景。
更新时间:Aug. 9, 2024, 8:46 a.m. 标签:pandas python equals 相等