Преобразование нескольких списков в один DataFrame - PullRequest
0 голосов
/ 29 января 2019

Я ищу удобный и простой способ объединения трех наборов списков в Dataframe (?) С шестью столбцами.

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 Ответ

0 голосов
/ 29 января 2019

Использование 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
...