代码之家  ›  专栏  ›  技术社区  ›  Christopher

将多个列表转换为一个数据帧

  •  1
  • Christopher  · 技术社区  · 7 年前

    我正在寻找一种简便易行的方法,将三个列表元组组合成一个数据帧(?)共有六列。

    list1 = [('word1', 0.6037212610244751), ('word2', 0.5418980717658997),('word3', 0.5389199256896973), ('word4', 0.51054847240448), ('word5', 0.49834704399108887)]
    
    list2 = [('word6', 0.6037212610244751), ('word7', 0.5418980717658997),('word8', 0.5389199256896973), ('word9', 0.51054847240448), ('word10', 0.49834704399108887)]
    
    list3 =[('word11', 0.6037212610244751), ('word12', 0.5418980717658997),('word13', 0.5389199256896973), ('word14', 0.51054847240448), ('word15', 0.49834704399108887)]
    

    对于列表的两列中的每一列,我希望使用“word”和“value”作为标题。

    我想要的输出:

    Word   Score   Word   Score   Word   Score
    word1  0.603   word6  0.603   word11 0.603
    ...
    word5  0.498   ...
    

    到目前为止,我尝试了:

    from pandas import DataFrame
    data = [list1,list2,list3]
    DataFrame.from_records(data, columns = ['Word','Score','Word','Score','Word'])
    
        Word    Score   Word    Score   Word
    0   (word1, 0.6037212610244751) (word2, 0.5418980717658997) (word3, 0.5389199256896973) (word4, 0.51054847240448)   (word5, 0.49834704399108887)
    1   (word6, 0.6037212610244751) (word7, 0.5418980717658997) (word8, 0.5389199256896973) (word9, 0.51054847240448)   (word10, 0.49834704399108887)
    2   (word11, 0.6037212610244751)    (word12, 0.5418980717658997)    (word13, 0.5389199256896973)    (word14, 0.51054847240448)  (word15, 0.49834704399108887)
    

    谢谢你的帮助!

    1 回复  |  直到 7 年前
        1
  •  1
  •   anky    7 年前

    IIUC使用 pd.concat() axis=1 :

    pd.concat([pd.DataFrame(list1,columns=['word','values']),pd.DataFrame(list2,columns=['word','values']),pd.DataFrame(list3,columns=['word','values'])],axis=1)
    
        word    values    word    values    word    values
    0  word1  0.603721   word6  0.603721  word11  0.603721
    1  word2  0.541898   word7  0.541898  word12  0.541898
    2  word3  0.538920   word8  0.538920  word13  0.538920
    3  word4  0.510548   word9  0.510548  word14  0.510548
    4  word5  0.498347  word10  0.498347  word15  0.498347
    
    推荐文章