Вы должны использовать extend
вместо append
для создания вашего исходного списка:
coauthors = []
coauthors.extend((("f","g"),("f","h"),("g","h"))) # combinations of f,g,h
coauthors.extend((("i","j"),("i","k"),("i","l"),("j","k"),("j","l"),("l","k"))) # combinations of i,j,k,l
coauthors.extend((("a","b"),)) # combinations of a,b
Это дает эффект расширения исходного списка элементами переданной итерации, а не добавления переданнойитерируемый как отдельный новый элемент исходного списка.
Также обратите внимание, что я добавил дополнительную запятую к вашей последней строке выше (чтобы исправить проблему в вашем дополнительном вопросе).Это говорит Python, что вы хотели бы передать extend
кортеж кортежей (внешний кортеж содержит только один кортеж).Без этой дополнительной запятой внешние скобки игнорируются, и Python думает, что вы передаете только кортеж ('a', 'b')
.
. Это дает список из 10 кортежей длины 2, а не вложенную структуру, сгенерированную с помощью * 1012.*.Отсюда легко создать DataFrame:
import pandas as pd
df = pd.DataFrame(coauthors, columns=['auth1', 'auth2'])
Предоставление:
auth1 auth2
0 f g
1 f h
2 g h
3 i j
4 i k
5 i l
6 j k
7 j l
8 l k
9 a b