GH 16051: DataFrame.replace() overwrites when values are non-numeric
- [x] closes #16051
- [x] tests added and passed
- [x] passes `black pandas`
- [x] added new test test_replace_commutative
I have updated it @WillAyd All green @jreback Thanks @pv8473h12 