2015-09-30 5 views
2

В основном я пытаюсь делать противоположное How to generate a list from a pandas DataFrame with the column name and column values?Вложенный список для панды Dataframe с заголовками

Занимать этот пример, я хочу, чтобы перейти от формы:

data = [['Name','Rank','Complete'], 
       ['one', 1, 1], 
       ['two', 2, 1], 
       ['three', 3, 1], 
       ['four', 4, 1], 
       ['five', 5, 1]] 

, который должен вывести:

Name Rank Complete 
    One 1  1 
    Two 2  1 
Three 3  1 
Four 4  1 
Five 5  1 

Однако, когда я делаю что-то вроде:

pd.DataFrame(data) 

я получаю dataframe, где первый список должен быть моим COLNAMES, а затем первый элемент каждого списка должен быть rowname

EDIT:

Чтобы уточнить, я хочу, чтобы первый элемент каждого списка в имя строки. Я слом данные так, что он отформатирован таким образом ...

ответ

5

Один из способов сделать это было бы взять имена столбцов в виде отдельного списка, а затем дать только с 1-го показателя для pd.DataFrame -

In [8]: data = [['Name','Rank','Complete'], 
    ...:    ['one', 1, 1], 
    ...:    ['two', 2, 1], 
    ...:    ['three', 3, 1], 
    ...:    ['four', 4, 1], 
    ...:    ['five', 5, 1]] 

In [10]: df = pd.DataFrame(data[1:],columns=data[0]) 

In [11]: df 
Out[11]: 
    Name Rank Complete 
0 one  1   1 
1 two  2   1 
2 three  3   1 
3 four  4   1 
4 five  5   1 

Если вы хотите установить столбец первого столбца Name в качестве индекса, используйте метод .set_index() и отправьте его в колонку для использования для индекса. Пример:

In [16]: df = pd.DataFrame(data[1:],columns=data[0]).set_index('Name') 

In [17]: df 
Out[17]: 
     Rank Complete 
Name 
one  1   1 
two  2   1 
three  3   1 
four  4   1 
five  5   1 
+0

Что относительно названий строк? – qwertylpc

+0

Проверьте последнее обновление. –

Смежные вопросы