I am currently using the following statement:
REPLACE INTO TableName (Col1, Col2, Col3, Col4) SELECT * FROM AnotherTable WHERE Col2 = 'Something' AND Col3 <> 'word' 
The issue with this is that TableName contains additional columns (i.e. Col0, Col5, Col6) that are not present in AnotherTable and whose data I do not want wiped.
I noticed that there is a statement called INSERT INTO ... ON DUPLICATE KEY UPDATE but I am unsure how to merge this with the SELECT * FROM statement that I am using to copy specific data from another table.  How is this done, if possible?
Supplementary Python2.7 code is possible if necessary.
Server version: 10.1.23-MariaDB-9+deb9u1 Raspbian 9.0
INSERT INTO TableName (Col1, Col2, Col3, Col4) SELECT * FROM AnotherTable WHERE Col2 = 'Something' AND Col3 <> 'word' ON DUPLICATE KEY UPDATE Col1=AnotherTable.Col1, Col2=AnotherTable.Col2, Col3=AnotherTable.Col3, Col4=AnotherTable.Col4
Notice the ability to use fully qualified references via the format Table.Column as an alternative to a static/specified value.
As danblack reminds, the REPLACE functionality is taken over by the ON DUPLICATE KEY UPDATE that is introduced, which is dependant on UNIQUE indexes or PRIMARY KEYs.
MySQL 'replace into select from' Alternative