Without consideration of indexes
To drop indexes of DataFrame use reset_index method. By dropping the indexes, makes an easy task such that interpreters just check the data irrespective of index values.
Syntax: dataframeName.reset_index(drop=True)
There are 2 ways of comparing data:
- Whole DataFrame
- Row by Row
Example 1: Entire DataFrame Comparison
Python3
# import necessary packages import pandas as pd # create 2 dataframes with different indexes hostelCandidates1 = pd.DataFrame({ 'Height in CMs' : [ 150 , 170 , 160 ], 'Weight in KGs' : [ 70 , 55 , 60 ]}, index = [ 1 , 2 , 3 ]) hostelCandidates2 = pd.DataFrame({ 'Height in CMs' : [ 150 , 170 , 160 ], 'Weight in KGs' : [ 70 , 55 , 60 ]}, index = [ 'A' , 'B' , 'C' ]) # displaying 2 dataframes print (hostelCandidates1) print (hostelCandidates2) # compare 2 dataframes hostelCandidates1.reset_index(drop = True ).equals( hostelCandidates2.reset_index(drop = True )) |
Output:
Here the data is the same and even though the indexes are different we are comparing the DataFrames by eliminating the index labels so it returns true.
Example 2: Row by Row Comparison
Python3
# import necessary packages import pandas as pd # create 2 dataframes with different indexes hostelCandidates1 = pd.DataFrame({ 'Height in CMs' : [ 150 , 170 , 160 ], 'Weight in KGs' : [ 70 , 55 , 60 ]}, index = [ 1 , 2 , 3 ]) hostelCandidates2 = pd.DataFrame({ 'Height in CMs' : [ 150 , 170 , 160 ], 'Weight in KGs' : [ 70 , 55 , 60 ]}, index = [ 'A' , 'B' , 'C' ]) # displaying 2 dataframes print (hostelCandidates1) print (hostelCandidates2) # compare 2 dataframes hostelCandidates1.reset_index( drop = True ) = = hostelCandidates2.reset_index(drop = True ) |
Output:
This approach helps us to identify where there are differences between 2 DataFrames and do not compare its index labels as their index labels are dropped while comparison.
How to Fix: Can only compare identically-labeled series objects
In this article, we are going to see how to fix it: Can only compare identically-labeled series objects in Python.