2-листовая форма:
pd.DataFrame([*x, y] for x, y in zip(l1, l2))
0 1 2
0 1 2 7
1 3 4 8
2 5 6 9
Форма с несколькими списками:
from collections import Sequence
lists = [l1, l2, ...]
pd.DataFrame([
[
k for j in i for k in (j
if isinstance(j, Sequence) else [j]
)]
for i in zip(*lists)
])
0 1 2
0 1 2 7
1 3 4 8
2 5 6 9
Это будет работать для любого случая, независимо от того, является ли l_i
списком кортежей или списком целых чисел.