Why does Apple swap the @ and " keys? On an English windows keyboard one finds the " above the 2 and the @ near the enter key on the right. On a standard English mac keyboard, as built into my macbook for instance, the two have their positions switched.

Why does this difference exist? Is it Apple which switched the two or was it Microsoft/IBM/whoever? Is there any rationale behind it or is it just down to the two evolving independently?
A bit broad, but…

It is highly region-dependent.
There is also no such thing as a "standard" English keyboard. The two main types are US English, which is based on the ANSI standard &amp; the UK English, which is based on the ISO standard.
The most immediately obvious differences are the Enter key &amp; the key left of Z…

US English - ANSI



British English - ISO



pics from Apple KB - How to identify keyboard localizations
These major physical differences also apply to PC keyboards.

Having " above the 2 is a UK English PC layout [one that drives me mad, even though I'm a Brit, I am simply used to @ being above 2 after 30 years of using Macs;)  

US English does it the Apple way, even on Windows, so you could argue that it's the British PC layout that is "wrong", but in the end it's what you get used to.

If you change your keyboard layout in System Prefs > Keyboard > Input Sources to British PC, you will get your " &amp; @ back to where you like them - however, it will also move other 'peripheral' keys to where a British PC has them, such as \ | ~ etc

Image showing British PC layout with Shift held.