简体   繁体   English

pandas dataframe 中的list列如何转换为单列和concat

[英]How to convert list column into a single column and the concat in pandas dataframe

I would like convert each list column into one single column and then concat for below dataframe我想将每个列表列转换为一个单独的列,然后连接到以下 dataframe

 data = {'labels': ['[management,workload,credibility]','[ethic,hardworking,profession]'],
    'Score': [[0.55,0.36,0.75],[0.41,0.23,0.14]]}
 # Create DataFrame
 df = pd.DataFrame(data)

new dataframe output should look like this新的 dataframe output 应该是这样的

    labels         Score
    management      0.55
    workload        0.36    
    credibility     0.75
    ethic           0.41
    hardworking     0.23
    profession      0.14

Thank you谢谢

Create lists from labels column by Series.str.strip and Series.str.split and then use DataFrame.explode :通过Series.str.stripSeries.str.splitlabels列创建列表,然后使用DataFrame.explode

df1 = (df.assign(labels= df['labels'].str.strip('[]').str.split(','))
         .explode(['labels','Score']))

For oldier pandas versions use:对于较旧的 pandas 版本,请使用:

df1 = (df.assign(labels= df['labels'].str.strip('[]').str.split(','))
         .apply(lambda x: x.explode()))
print (df1)
        labels Score
0   management  0.55
0     workload  0.36
0  credibility  0.75
1        ethic  0.41
1  hardworking  0.23
1   profession  0.14

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

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