Dataframe pandas如何将列表作为列传递

Ale*_*lex 3 python dataframe pandas

我有两个列表,例如:

list_columns = ['a','b','c','d','e','f','g','h','k','l','m','n']
Run Code Online (Sandbox Code Playgroud)

和一系列价值观

list_values = [11,22,33,44,55,66,77,88,99,100, 111, 222]
Run Code Online (Sandbox Code Playgroud)

我想使用list_columns作为创建Pandas数据帧.

我试过df = pd.DataFrame(list_values, columns=list_columns) 但它不起作用

我收到此错误: ValueError: Shape of passed values is (1, 12), indices imply (12, 12)

jpp*_*jpp 7

数据帧是二维对象.要反映这一点,您需要提供嵌套列表.每个子列表(在本例中是唯一的子列表)表示一行.

df = pd.DataFrame([list_values], columns=list_columns)

print(df)

#     a   b   c   d   e   f   g   h   k    l    m    n
# 0  11  22  33  44  55  66  77  88  99  100  111  222
Run Code Online (Sandbox Code Playgroud)

如果您提供长度大于1的索引,Pandas会为您广播:

df = pd.DataFrame([list_values], columns=list_columns, index=[0, 1, 2])

print(df)

#     a   b   c   d   e   f   g   h   k    l    m    n
# 0  11  22  33  44  55  66  77  88  99  100  111  222
# 1  11  22  33  44  55  66  77  88  99  100  111  222
# 2  11  22  33  44  55  66  77  88  99  100  111  222
Run Code Online (Sandbox Code Playgroud)


小智 5

如果我正确理解您的问题,只需将 list_values 括在括号中,这样它就是一个列表列表

list_columns = ['a','b','c','d','e','f','g','h','k','l','m','n']
list_values = [[11,22,33,44,55,66,77,88,99,100, 111, 222]]

pd.DataFrame(list_values, columns=list_columns)
    a   b   c   d   e   f   g   h   k    l    m    n
0  11  22  33  44  55  66  77  88  99  100  111  222
Run Code Online (Sandbox Code Playgroud)