puoi essere in grado di ingannarlo e utilizzare un'espressione regolare per cercare:
"(.*?)"(?=,|$)
Ma è una specie di hack-ish (fondamentalmente, accetta una virgoletta finale solo se seguita immediatamente da una virgola o da una fine di riga). La stessa logica si applicherebbe a un trova-sostituisci. (Di nuovo, tutto questo presuppone che una citazione "errata" non seguirà mai le regole CSV standard (ad esempio avere una virgola/linea [inizio/fine] prima o dopo))
Presumo che tu non abbia alcun controllo sui dati originali e devi lavorare con quello che hai?
MODIFICA
Anche se l'ho provato solo su un piccolo campione dei tuoi dati, questo sembra trovare le virgolette "vaganti", a cui puoi utilizzare una sostituzione con ""
su:
(?<!^|"|,)"(?!"|,|$)