将两列数据帧转换为多列?

时间:2019-02-09 19:02:21

标签: python dataframe

我有一个这样的数据框(my_data):

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]

我想将其转换为具有多个列的表单,例如以下数据框:

        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

2 个答案:

答案 0 :(得分:2)

列出并重新转换为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

答案 1 :(得分: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