Обработка переменного числа столбцов Dataframe - Python

Я пытаюсь записать список списков в лист Excel, используя панд, список выглядит так:

List_of Lists = [ [1,2,3,4],
                  [5,6,7,8],
                  [9,10,11,12],
                  ........,
                ]

Число этих списков внутри основного списка может доходить до 1000. Я также хочу пометить их как colums1, colomns2, например, до colums100. на тех же листах. Может ли кто-нибудь, знакомый с пандами, помочь мне? как это может быть действительно легко для некоторых?

1 ответ

Решение

Я считаю, что вы можете просто передать список в pd.DataFrame() и вы просто получите NaN для значений, которые не существуют.

Например:

List_of_Lists = [[1,2,3,4],
                 [5,6,7],
                 [9,10],
                 [11]]
df = pd.DataFrame(List_of_Lists)
print(df)
    0     1    2    3
0   1   2.0  3.0  4.0
1   5   6.0  7.0  NaN
2   9  10.0  NaN  NaN
3  11   NaN  NaN  NaN

Затем, чтобы получить наименование так, как вы хотите, просто используйте pandas.DataFrame.add_prefix

df = df.add_prefix('Column')
print(df)
   Column0  Column1  Column2  Column3
0        1      2.0      3.0      4.0
1        5      6.0      7.0      NaN
2        9     10.0      NaN      NaN
3       11      NaN      NaN      NaN

Теперь, я думаю, есть вероятность, что вы также захотите, чтобы каждый список был столбцом. В этом случае вам нужно перенести свой List_of_Lists,

from itertools import zip_longest

df = pd.DataFrame(list(map(list, zip_longest(*List_of_Lists))))
print(df)
   0    1     2     3
0  1  5.0   9.0  11.0
1  2  6.0  10.0   NaN
2  3  7.0   NaN   NaN
3  4  NaN   NaN   NaN
Другие вопросы по тегам