Преобразование фрейма данных в список кортежей

#python #pandas #list

#python #панды #Список

Вопрос:

Итак, я пытался преобразовать фрейм данных в список с помощью пакета pandas на python с таким форматом:

 [('row1 element1', 'row1 element2', 'row1 element3'), ('row2 element1', 'row2 element2', 'row2 element3'), ('row3 element1', 'row3 element2', 'row3 element3')...]
  

Самое близкое, что мне удалось, — это использовать следующий фрагмент:

 df.values.tolist()
  

однако это дает следующий формат:

 ['row1 element1', 'row1 element2', 'row1 element3'],
['row2 element1', 'row2 element2', 'row2 element3'],
['row3 element1', 'row3 element2', 'row3 element3']...
  

Есть ли какой-нибудь простой способ получить необходимый формат? Возможно, можно было бы предложить существующий метод или простой итеративный процесс. Любая помощь приветствуется.

Ответ №1:

Вы можете сгенерировать массив записей для быстрого подхода:

 df.to_records(index=False).tolist()
  

Ответ №2:

Если вы хотите преобразовать список списков в список кортежей, так:

 >>> a = [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11], [12, 13, 14], [15, 16, 17], [18, 19]]
>>> [tuple(x) for x in a]
[(0, 1, 2), (3, 4, 5), (6, 7, 8), (9, 10, 11), (12, 13, 14), (15, 16, 17), (18, 19)]