Question: I have Dataframe:[![enter image description here](https://i.stack.imgur.com/UdiWP.png)](https://i.stack.imgur.com/UdiWP.png)

On the 16th row there is array with multiple items, how to put one item to next row and delete from previous? 
It should look like this:

```
16  76561198316667197  MW  0.13028361  11715671189
17  76561198315155019  MW  0.13529198  11715512049
18  76561198338763319  MW  0.14147347  11712963469

```

Answer: 
Try the [explode function](https://stackoverflow.com/a/40449726/4893407) by MaxU:

```
def explode(df, lst_cols, fill_value=''):
    # make sure `lst_cols` is a list
    if lst_cols and not isinstance(lst_cols, list):
        lst_cols = [lst_cols]
    # all columns except `lst_cols`
    idx_cols = df.columns.difference(lst_cols)

    # calculate lengths of lists
    lens = df[lst_cols[0]].str.len()

    if (lens > 0).all():
        # ALL lists in cells aren't empty
        return pd.DataFrame({
            col:np.repeat(df[col].values, df[lst_cols[0]].str.len())
            for col in idx_cols
        }).assign(**{col:np.concatenate(df[col].values) for col in lst_cols}) \
          .loc[:, df.columns]
    else:
        # at least one list in cells is empty
        return pd.DataFrame({
            col:np.repeat(df[col].values, df[lst_cols[0]].str.len())
            for col in idx_cols
        }).assign(**{col:np.concatenate(df[col].values) for col in lst_cols}) \
          .append(df.loc[lens==0, idx_cols]).fillna(fill_value) \
          .loc[:, df.columns]

```
I am pretty sure this is not the most efficient way to do it, but it works. Assuming your First\_Column consist of lists of two.

```
a = df['First_Column'].values

b = [a[i][0] for i in range(0, len(a))]
c = [a[i][1] for i in range(0, len(a))]

d = {'col1': b, 'col2': c}

new_df = pd.DataFrame(d)

```