基本上我试图与如何使用列名和列值从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)