Обработка переменного числа столбцов 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