I wanted to migrate all my emails from one gmail account to another. Unfortunately, Google does not seem to offer an easy automated method. When I tried importing the mails from the other account via POP, my label system was not reproduced (I am an avid labeler). People suggest to use IMAP (where labels are represented as IMAP folders). You can use an email client (such as Mozilla Thunderbird) to download all emails form one account. And then copy all the emails to the other account. While downloading worked well for me, uploading of the emails to the other account always ended up in connection errors.
Eventually I found a tool called larch, which automates the process. It is a ruby program (which can be very easily installed on Windows, Linux, or MacOS) and it deals with all the problems of the IMAP migration for you. I can’t say that it is fast, but at least it seems robust. Simple command line interface. Highly recommended.