I often notice this question. That is, how do I split this column that has a list of several rows? I saw what it was called an explosion. Here are some links:
So, I wrote a function that will do this.
def explode(df, columns): idx = np.repeat(df.index, df[columns[0]].str.len()) a = df.T.reindex_axis(columns).values concat = np.concatenate([np.concatenate(a[i]) for i in range(a.shape[0])]) p = pd.DataFrame(concat.reshape(a.shape[0], -1).T, idx, columns) return pd.concat([df.drop(columns, axis=1), p], axis=1).reset_index(drop=True)
But before we can use it, we need lists (or iterable) in the column.
Customization
df = pd.DataFrame([['aa', 'assets', '100,200', '20121231,20131231'], ['bb', 'liabilities', '50,50', '20141231,20131231']], columns=['ticker', 'account', 'value', 'date']) df

split value and date :
df.value = df.value.str.split(',') df.date = df.date.str.split(',') df

Now we could explode in any column or both, and then one after another.
Decision
explode(df, ['value','date'])

Timing
I removed strip from @jezrael time because I could not effectively add it to mine. This is a necessary step for this question, since the OP has spaces in the lines after commas. I sought to provide a general way to explode a column, given that it already has iterations in it, and I think I did it.
code
def get_df(n=1): return pd.DataFrame([['aa', 'assets', '100,200,200', '20121231,20131231,20131231'], ['bb', 'liabilities', '50,50', '20141231,20131231']] * n, columns=['ticker', 'account', 'value', 'date'])
small two-line example

average example 200 lines

high mileage of 2,000,000 lines
