Список, который я хочу преобразовать в фрейм данных, хранит различные типы данных в каждой ячейке:
[In] type(example_list)
[Out] list
[In] type(example_list[0])
[Out] list
[In] type(example_list[0][0])
[Out] str
[In] type(example_list[0][1])
[Out] tuple
[In] type(example_list[0][2])
[Out] tuple
[In] type(example_list[0][1][0])
[Out] list
И все элементы кортежа имеют следующий формат:
[In] example_list[0][1]
[Out] ([array([200.85183333, 200.85183333, 200.85183333])], ['#c8c8c8'])
[In] type(example_list[0][1][0])
[Out] list
[In] type(example_list[0][1][1])
[Out] list
Когда Я использую функцию pd.DataFrame
, в результате я получаю 3 столбца, но хочу иметь 5 столбцов (то есть 2 столбца для каждого элемента кортежа).
Когда я запускаю следующую команду:
df = pd.DataFrame(example_list, columns=['Name','PrimaryColors','SecondaryColors'])
df.to_csv('test.csv', sep=',')
Это то, что я получаю (выводя только первую строку ниже):
E123 ([array([200.85183333, 200.85183333, 200.85183333])], ['#c8c8c8']) ([array([226.9, 226.9, 226.9])], ['#e2e2e2'])
Как я могу вместо этого получить 5 столбцов вместо 3 и иметь фрейм данных в следующем формате?
Name PrimaryColorRGB PrHEX SecondaryColorsRGB SecHEX
E123 200.85183333, 200.85183333, 200.85183333 #c8c8c8 226.9, 226.9, 226.9 #e2e2e2