如何将两个不同长度的列表合并为 Pandas 数据框?

我有两个列表要合并为熊猫数据框。列将是 CSV 的标题,数据包含作为单个列表的数据行。


import pandas as pd

columns = [column[0] for column in cursor.description]

len(columns)

>5


data = cursor.fetchall()

len(data)

>2458


len(data[0])

>5


df = pd.DataFrame(data=data, index=None, columns=columns)

>ValueError: Shape of passed values is (1, 2458), indices imply (5, 2458).

有人可以帮我将这两个列表合并为熊猫数据框吗?如果我遗漏了任何其他细节,请告诉我。谢谢!


精慕HU
浏览 657回答 2
2回答

HUX布斯

光标的存在表明您正在使用pyodbc. data包含pyodbc.Row对象,因此pd.DataFrame构造函数无法拆分数据。试试这个df = pandas.DataFrame([tuple(t) for t in cursor.fetchall()], columns=columns)

开满天机

您的 csv 文件显然有 5 列,但您的数据是单个值列表。这意味着您也只需要 1 个列标题。Pandas 现在抱怨是因为列列表 (5) 的维度与数据 (1) 中的列数不匹配。例如,您可以通过以下方式解决此问题:df = pd.DataFrame(data=data, index=None, columns=[columns[0]])那是假设您要使用第一个列名。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python