我有两个列表要合并为熊猫数据帧。这些列将是 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).
有人可以帮我合并这两个列表作为熊猫数据帧吗?如果我缺少任何其他细节,请告诉我。 谢谢!
cursos 的存在表明您正在使用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]])
这是假设您要使用第一个列名。