I've an excel file and I have to go through each row, always get columns say 2,3 and then in another owl file find the corresponding entity(which I get from column 2 of each row of the excel file) and populate it, and repeat the whole task for all rows of the excel file. Since both files are big doing the trivial way: go through each row of the excel file then go through each entity of the owl file, find the correct entity and then populate will take a lot time. 
Is there a different method I should try, which has lower complexity?
Any help is highly appreciated.
PS: I'm a CS student and done DSA in my previous sem. I now realise the practical importance of algos runtime now. 
For working with excel sheet I'm using openpyxl, though unnecessary info.
Depending on 'big' you may get away with reducing the big overhead of file-IO by storing one of the files (only the parts you need) in RAM and than iterate the other file only once.
Komplexity keeps to be O(n*m)
You could reduce the complexity (if still needed) by storing the data of the file you keep in RAM in a HashMap which has access complexity of O(1) (in most cases)
Komplexity is O(m) where m is the size of the file not kept in the HashMap (in RAM).
If 'big' means that even the data from the smaller file do not fit in RAM, You can use the same approach just do it in chunks of a size that fit in your RAM.
Faster way to populate a file after reading each line of another file