2

I have a data frame (my_data) like this:

my_data:

          0         1
     0  name1  [2, 2, 3, 2]
     1  name2  [3, 2, 2, 2]
     2  name3  [2, 3, 2, 2]
     3  name4  [2, 2, 3, 2]
     4  name5  [0, 1, 1, 1]

And I want to convert it to a form with multiple columns like the below data frame:

        Col0, col1, col2, col3, col4
     0  name1,  2,   2,     3,   2
     1  name2,  3,   2,     2,   2
     2  name3,  2,   3,     2,   2
     3  name4,  2,   2,     3,   2
     4  name5,  0,   1,     1,   1
Spedo
  • 355
  • 3
  • 13
  • 1
    Possible duplicate of [How do I unnest (explode) a column in a pandas DataFrame?](https://stackoverflow.com/questions/53218931/how-do-i-unnest-explode-a-column-in-a-pandas-dataframe) – yatu Feb 09 '19 at 19:02

2 Answers2

2

Listify and re-convert to DataFrame:

u = pd.DataFrame(df.iloc[:,1].tolist()).rename(lambda x: f'col{x+1}', axis=1)
u

   col1  col2  col3  col4
0     2     2     3     2
1     3     2     2     2
2     2     3     2     2
3     2     2     3     2
4     0     1     1     1

df.iloc[:,[0]].join(
    pd.DataFrame(df.iloc[:,1].tolist()).rename(lambda x: f'col{x+1}', axis=1))

       0  col1  col2  col3  col4
0  name1     2     2     3     2
1  name2     3     2     2     2
2  name3     2     3     2     2
3  name4     2     2     3     2
4  name5     0     1     1     1
cs95
  • 379,657
  • 97
  • 704
  • 746
1
my_Data = pd.DataFrame({'0':['name1','name2','name3','name4','name5'],'1':[[2, 2, 3, 2],[3, 2, 2, 2],[2, 3, 2, 2],[2, 2, 3, 2],[0, 1, 1, 1]]})
my_Data.columns = ['Col0','x']

df1=pd.DataFrame(my_Data.x.values.tolist(), index= my_Data.index, columns=['Col1','Col2','Col3','Col4'])
df=my_Data[['Col0']].merge(df1,left_index=True, right_index=True, how='inner')
print(df)

    Col0  Col1  Col2  Col3  Col4
0  name1     2     2     3     2
1  name2     3     2     2     2
2  name3     2     3     2     2
3  name4     2     2     3     2
4  name5     0     1     1     1
cph_sto
  • 7,189
  • 12
  • 42
  • 78