要比较两个Pandas DataFrames中的值,可以使用equals()
函数。该函数比较两个DataFrame中的每个元素,如果两个DataFrame的值完全相同,则返回True
,否则返回False
。
以下是比较两个DataFrames的示例代码:
import pandas as pd
# 创建第一个DataFrame
data1 = {'name': ['Alice', 'Bob', 'Charlie'], 'score': [85, 90, 75]}
df1 = pd.DataFrame(data1)
# 创建第二个DataFrame
data2 = {'name': ['Alice', 'Bob', 'Charlie'], 'score': [85, 90, 75]}
df2 = pd.DataFrame(data2)
# 使用equals()函数比较两个DataFrame
if df1.equals(df2):
print("两个DataFrame相等")
else:
print("两个DataFrame不相等")
输出结果为两个DataFrame相等
,因为两个DataFrame是完全相同的。
如果两个DataFrame中的列顺序不同,但是列名和顺序的顺序相同,则两个DataFrame仍然是相等的。如果两个DataFrame不具备相同的列名和顺序,则需要使用sort_values()
函数排序两个DataFrame。
以下是比较两个拥有不同列名的DataFrames的示例代码:
import pandas as pd
# 创建第一个DataFrame
data1 = {'name': ['Alice', 'Bob', 'Charlie'], 'score': [85, 90, 75]}
df1 = pd.DataFrame(data1)
# 创建第二个DataFrame
data2 = {'student_name': ['Charlie', 'Alice', 'Bob'], 'student_score': [75, 85, 90]}
df2 = pd.DataFrame(data2)
# 使用equals()函数比较两个DataFrame
if df1.equals(df2):
print("两个DataFrame相等")
else:
# 对于不同的列名进行排序后再比较
print("两个DataFrame不相等")
df2_sorted = df2.sort_values(by=['student_name'])
if df1.equals(df2_sorted):
print("两个DataFrame在排序后相等")
else:
print("两个DataFrame在排序后仍然不相等")
输出结果为两个DataFrame不相等
,因为两个DataFrame中都包含不同的列名和顺序。接着我们排序了df2
并比较了排好序后的df2
和df1
,最后得出两个DataFrames不相等的结论。
总之,如果要比较两个Pandas DataFrames中的值,应该先使用equals()
函数直接比较。如果数据框不一样,则使用sort_values()
函数进行排序后再进行比较。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何比较两个Pandas Dataframes中的值 - Python技术站