将列表列表获取到 pandas DataFrame
Posted
技术标签:
【中文标题】将列表列表获取到 pandas DataFrame【英文标题】:Getting list of lists into pandas DataFrame 【发布时间】:2013-10-07 09:20:38 【问题描述】:我正在将电子表格的内容读入 pandas。 DataNitro 有一个方法可以将矩形单元格选择作为列表返回。所以
table = Cell("A1").table
给予
table = [['Heading1', 'Heading2'], [1 , 2], [3, 4]]
headers = table.pop(0) # gives the headers as list and leaves data
我正忙着写代码来翻译这个,但我的猜测是它是如此简单的使用,必须有方法来做到这一点。似乎无法在文档中找到它。任何指向可以简化此方法的方法的指针?
【问题讨论】:
【参考方案1】:直接调用pd.DataFrame
构造函数:
df = pd.DataFrame(table, columns=headers)
df
Heading1 Heading2
0 1 2
1 3 4
【讨论】:
【参考方案2】:使用上面 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
【讨论】:
【参考方案3】:即使没有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
【讨论】:
以上是关于将列表列表获取到 pandas DataFrame的主要内容,如果未能解决你的问题,请参考以下文章
Pandas使用split函数基于指定分隔符拆分数据列的内容为列表设置参数n控制拆分的次数设置expand参数将拆分结果列表内容转化为多列dataframe并添加到原dataframe中