Iterar linhas e expandir o dataframe do pandas

Eu tenho o panda dataframe com uma coluna contendo valores ou listas de valores (de comprimento desigual). Eu quero 'expandir' as linhas, para que cada valor na lista se torne um valor único na coluna. Um exemplo diz tudo:

dfIn = pd.DataFrame({u'name': ['Tom', 'Jim', 'Claus'],
 u'location': ['Amsterdam', ['Berlin','Paris'], ['Antwerp','Barcelona','Pisa'] ]})

    location     name
0   Amsterdam   Tom
1   [Berlin, Paris] Jim
2   [Antwerp, Barcelona, Pisa]  Claus

Eu quero me transformar em:

dfOut = pd.DataFrame({u'name': ['Tom', 'Jim', 'Jim', 'Claus','Claus','Claus'],
u'location': ['Amsterdam', 'Berlin','Paris', 'Antwerp','Barcelona','Pisa']})

    location     name
0   Amsterdam   Tom
1   Berlin   Jim
2   Paris   Jim
3   Antwerp Claus
4   Barcelona   Claus
5   Pisa    Claus

Tentei usar o apply pela primeira vez, mas não é possível retornar várias séries até onde sei. o seguinte parece ser o truque. Mas o código abaixo me fornece um quadro de dados vazio ...

def duplicator(series):
    if type(series['location']) == list:
        for location in series['location']:
            subSeries = series
            subSeries['location'] = location
            dfOut.append(subSeries)
    else:
        dfOut.append(series)

for index, row in dfIn.iterrows():
    duplicator(row)

questionAnswers(2)

yourAnswerToTheQuestion