python—如何将列分配给数据帧?

python—如何将列分配给数据帧?,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个列表需要放入数据框中。第一个列表有变量名,第二个列表有值。我正在使用熊猫来指定列名。如何分配实际值 varnames = ['Student_id','First_Name','Last_Name','Grade'] values = [['156841','Mark','Smith','85'], ['785496','Jason','Gross','90'], ['785612','Laura','Clarkson','76'],

我有两个列表需要放入数据框中。第一个列表有变量名,第二个列表有值。我正在使用熊猫来指定列名。如何分配实际值

varnames = ['Student_id','First_Name','Last_Name','Grade']
values = [['156841','Mark','Smith','85'],
          ['785496','Jason','Gross','90'],
          ['785612','Laura','Clarkson','76'],
          ['125465','Tria','Carr','100']]

data1 = pandas.DataFrame(columns = varnames)
print(data1)
我尝试使用append,但出现以下错误:“DataFrame”对象是可变的,因此无法对其进行哈希运算。

您将中的columns参数与data参数混淆;医生告诉你:

columns参数仅用于列名列表

数据参数用于它们的值,可以选择作为dict,也可以将列名作为键。这就是你想要传递的信息:

data1=pandas.DataFramedata={'Student_id':['156841','785496'…],'First_Name':['Mark','Jason'…]}

或者在您的情况下:

pd.DataFrame(data=values, columns=varnames) @ as @AndyL noted
使用复杂的语法也可以得到同样的结果:

pd.DataFrame(data=dict(zip(varnames, values)))

pd.DataFramevalues,columns=varnames如果您在浏览器中搜索PANDAS create column,您将发现可以更好地解释这一点的引用,这比我们在这里所能管理的要好得多。
import pandas as pd

varnames = ['Student_id','First_Name','Last_Name','Grade']
values = [['156841','Mark','Smith','85'],
         ['785496','Jason','Gross','90'],
         ['785612','Laura','Clarkson','76'],
         ['125465','Tria','Carr','100']]

data1 = pd.DataFrame(values, columns=varnames)
data1