Hello,
There are plenty of topics out there about different results from du and df.
The most notable distinction between the two tools is that df operates at the filesystem level while du acts on a per file basis.
df means "grab the filesystem on which lays the directory and tell me info about it" while du means "for each file in this directory, make the sum and tell me the total".
You can have multiple filesystems mounted in subdirectories, or depending on the way the filesystem actually handles hardlinks/duplicate files it can lead to different sizes being computed.