Elementos de la matriz numpy como propia fila de pandas con el mismo índice

Tengo un DataFrame de pandas con arrays numpy como valores en una columna. Me gustaría convertir cada elemento en una fila con la misma fecha:

Mi DataFrame se ve así:

date website+ 0 2014-11-26 [A] 238 2015-12-20 [B, C] 297 2016-02-17 [D] 303 2016-02-23 [E, F, G] 

Y yo quiero:

  date website+ 0 2014-11-26 [A] 238 2015-12-20 [B] 2015-12-20 [C] 297 2016-02-17 [D] 303 2016-02-23 [E] 2016-02-23 [F] 2016-02-23 [G] 

El índice no es importante mientras la fecha permanezca igual. He encontrado una solución para convertir cada entrada en una columna, pero eso no es exactamente lo que quiero.

Si su primera columna ya está en el índice, puede usar lo siguiente:

 df.set_index('date', append=True)['website+']\ .apply(pd.Series).stack().reset_index(level=-1, drop=True)\ .to_frame(name='website+') 

Salida:

  website+ date 0 2014-11-26 A 238 2015-12-20 B 2015-12-20 C 297 2016-02-17 D 303 2016-02-23 E 2016-02-23 F 2016-02-23 G 

Otra solución

 import pandas as pd df = pd.DataFrame({u'date': ['2014-11-26', '2015-12-20', '2016-02-17','2016-02-23'], u'website+': [['A'], ['B','C'], ['D'],['E','F','G'] ]}) print (df) def expand(row): ws = row['website+'] if isinstance(row['website+'], list) else [row['website+']] s = pd.Series(row['date'], index=list(set(ws))) return s df1 = df.apply(expand, axis=1).stack() print (df1) 

Salida:

  date website+ 0 2014-11-26 [A] 1 2015-12-20 [B, C] 2 2016-02-17 [D] 3 2016-02-23 [E, F, G] 0 A 2014-11-26 1 B 2015-12-20 C 2015-12-20 2 D 2016-02-17 3 E 2016-02-23 F 2016-02-23 G 2016-02-23 dtype: object