Podziel (rozstrzel) pozycję łańcucha danych pandas na oddzielne wiersze

mampandas dataframe w której jedna kolumna ciągów tekstowych zawiera wartości rozdzielone przecinkami. Chcę podzielić każde pole CSV i utworzyć nowy wiersz dla każdego wpisu (zakładając, że CSV jest czysty i wymaga tylko podziału na „,”). Na przykład,a powinno stać sięb:

In [7]: a
Out[7]: 
    var1  var2
0  a,b,c     1
1  d,e,f     2

In [8]: b
Out[8]: 
  var1  var2
0    a     1
1    b     1
2    c     1
3    d     2
4    e     2
5    f     2

Do tej pory próbowałem różnych prostych funkcji, ale.apply metoda wydaje się akceptować tylko jeden wiersz jako wartość zwracaną, gdy jest używana na osi, a ja nie mogę uzyskać.transform pracować. Wszelkie sugestie będą bardzo mile widziane!

Przykładowe dane:

from pandas import DataFrame
import numpy as np
a = DataFrame([{'var1': 'a,b,c', 'var2': 1},
               {'var1': 'd,e,f', 'var2': 2}])
b = DataFrame([{'var1': 'a', 'var2': 1},
               {'var1': 'b', 'var2': 1},
               {'var1': 'c', 'var2': 1},
               {'var1': 'd', 'var2': 2},
               {'var1': 'e', 'var2': 2},
               {'var1': 'f', 'var2': 2}])

Wiem, że to nie zadziała, ponieważ tracimy metadane DataFrame przechodząc przez numpy, ale powinno to dać ci poczucie, co próbowałem zrobić:

def fun(row):
    letters = row['var1']
    letters = letters.split(',')
    out = np.array([row] * len(letters))
    out['var1'] = letters
a['idx'] = range(a.shape[0])
z = a.groupby('idx')
z.transform(fun)

questionAnswers(15)

yourAnswerToTheQuestion