简体   繁体   English

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

[英]Converting a two columns data-frame into multiple columns?

I have a data frame (my_data) like this: 我有一个像这样的数据框(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]

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

Listify and re-convert to DataFrame: 列出并重新转换为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
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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM