Конвертировать pandas dataframe в список кортежей

У меня есть примерный фрейм данных

>>> df
   a  b
0  1  2
1  3  4

Я хочу преобразовать это в список кортежей. Я пытался с помощью itertuples() для того же

>>> list(df.T.itertuples())
[('a', 1, 3), ('b', 2, 4)]

Но я хочу, чтобы результат имел формат [('a', [1, 3]), ('b', [2, 4])], где первое значение кортежа - это имя столбца, а второе - Элемент в кортеже - это список значений столбцов.

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

1 ответ

Решение

Вы можете сжать имена столбцов со значениями в виде списков:

In [127]:
list(zip(df.columns,df.T.values.tolist()))

Out[127]:
[('a', [1, 3]), ('b', [2, 4])]
Другие вопросы по тегам