208

我正在将电子表格的内容读入熊猫。DataNitro 有一个方法可以将矩形单元格选择作为列表返回。所以

table = Cell("A1").table

table = [['Heading1', 'Heading2'], [1 , 2], [3, 4]]

headers = table.pop(0) # gives the headers as list and leaves data

我正忙着编写代码来翻译它,但我的猜测是它是如此简单的用途,必须有方法来做到这一点。似乎无法在文档中找到它。任何指向可以简化此方法的方法?

4

3 回答 3

302

直接调用pd.DataFrame构造函数:

df = pd.DataFrame(table, columns=headers)
df

   Heading1  Heading2
0         1         2
1         3         4
于 2013-10-01T09:41:12.887 回答
97

使用上面 EdChum 解释的方法,列表中的值显示为行。要将列表的值显示为 DataFrame 中的列,只需使用 transpose() 如下:

table = [[1 , 2], [3, 4]]
df = pd.DataFrame(table)
df = df.transpose()
df.columns = ['Heading1', 'Heading2']

那么输出是:

      Heading1  Heading2
0         1        3
1         2        4
于 2016-01-25T15:59:49.170 回答
7

即使没有pop我们可以使用的列表set_index

pd.DataFrame(table).T.set_index(0).T
Out[11]: 
0 Heading1 Heading2
1        1        2
2        3        4

更新from_records

table = [['Heading1', 'Heading2'], [1 , 2], [3, 4]]

pd.DataFrame.from_records(table[1:],columns=table[0])
Out[58]: 
   Heading1  Heading2
0         1         2
1         3         4
于 2018-12-30T03:06:52.150 回答