Вы можете использовать пакет itertools
для эффективного выравнивания списков.
import itertools
import pandas as pd
df = pd.DataFrame({
"a": [[], [], [200], [], [200]]
})
list2d = df["a"].values
list(itertools.chain(*list2d))
Вывод:
[200, 200]
Время тестирования
Сначала давайте создадим фиктивный двумерный список:
list2d = [[_] for _ in range(100000000)]
Сглаживание Itertools:
%%timeit
[*itertools.chain(*list2d)]
5,55 с ± 151 мс на цикл (среднее ± стандартное отклонение из 7 циклов, по 1 циклу каждый)
Сглаживание списка:
%%timeit
[e for i in list2d for e in i]
6,34 с ± 228 мс на цикл (среднее ± стандартное отклонение из 7 циклов, по 1 циклу каждый)