如何将两个不同长度的列表合并为 Pandas 数据框?
How to merge two lists of different lengths as a Pandas dataframe?
我有两个列表要合并为 pandas 数据框。这些列将是 CSV 的 header,数据包含作为单个列表的数据行。
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).
有人可以帮我将这两个列表合并为 pandas 数据框吗?如果我遗漏任何其他细节,请告诉我。
谢谢!
您的 csv 文件显然有 5 列,但您的数据是单个值列表。这意味着您也只需要 1 列 header。 Pandas 现在抱怨是因为列列表的维度 (5) 与数据中的列数 (1) 不匹配。例如,您可以通过以下方式解决此问题:
df = pd.DataFrame(data=data, index=None, columns=[columns[0]])
假设您要使用第一列名称。
cursos 的存在表示您正在使用 pyodbc
。 data
包含 pyodbc.Row
个对象,因此 pd.DataFrame
构造函数无法拆分数据。
试试这个
df = pandas.DataFrame([tuple(t) for t in cursor.fetchall()], columns=columns)
我有两个列表要合并为 pandas 数据框。这些列将是 CSV 的 header,数据包含作为单个列表的数据行。
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).
有人可以帮我将这两个列表合并为 pandas 数据框吗?如果我遗漏任何其他细节,请告诉我。 谢谢!
您的 csv 文件显然有 5 列,但您的数据是单个值列表。这意味着您也只需要 1 列 header。 Pandas 现在抱怨是因为列列表的维度 (5) 与数据中的列数 (1) 不匹配。例如,您可以通过以下方式解决此问题:
df = pd.DataFrame(data=data, index=None, columns=[columns[0]])
假设您要使用第一列名称。
cursos 的存在表示您正在使用 pyodbc
。 data
包含 pyodbc.Row
个对象,因此 pd.DataFrame
构造函数无法拆分数据。
试试这个
df = pandas.DataFrame([tuple(t) for t in cursor.fetchall()], columns=columns)