带有标题的Pandas Dataframe的嵌套列表

qwe*_*lpc 12 python pandas

基本上我试图与如何使用列名和列值从pandas DataFrame生成列表相反

借用这个例子,我想从形式出发:

data = [['Name','Rank','Complete'],
               ['one', 1, 1],
               ['two', 2, 1],
               ['three', 3, 1],
               ['four', 4, 1],
               ['five', 5, 1]]
Run Code Online (Sandbox Code Playgroud)

应该输出:

 Name Rank Complete
  One    1        1
  Two    2        1
Three    3        1
 Four    4        1
 Five    5        1
Run Code Online (Sandbox Code Playgroud)

但是当我做类似的事情时:

pd.DataFrame(data)
Run Code Online (Sandbox Code Playgroud)

我得到一个数据框,其中第一个列表应该是我的colnames,然后每个列表的第一个元素应该是rowname

编辑:

To clarify, I want the first element of each list to be the row name. I am scrapping data so it is formatted this way...

Ana*_*mar 25

一种方法是将列名作为单独的列表,然后仅从第一个索引中给出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
Run Code Online (Sandbox Code Playgroud)

如果要将第一列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
Run Code Online (Sandbox Code Playgroud)