【问题标题】:Dataframe pandas how to pass list as columnsDataframe pandas如何将列表作为列传递
【发布时间】:2019-01-18 18:59:04
【问题描述】:

我有两个列表,比如:

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]

我想使用 list_columns 作为 columns 创建一个 Pandas 数据框。

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

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

【问题讨论】:

  • list_values 作为列是什么意思?请更具体地说明预期输出。
  • list_columns 作为列。我刚刚编辑了它

标签: python pandas dataframe


【解决方案1】:

数据框是一个二维对象。为了反映这一点,您需要提供一个嵌套列表。每个子列表,在本例中为 only 子列表,代表一行。

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

如果您提供长度大于 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

【讨论】:

  • 太好了,这正是我想要实现的目标
【解决方案2】:

如果我正确理解您的问题,只需将 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

【讨论】:

    【解决方案3】:

    从您的列表中,您可以执行以下操作:

    df = pd.DataFrame(list_values) 
    df=df.T
    df.columns=list_columns
    >>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
    

    【讨论】:

      猜你喜欢
      • 2012-11-19
      • 2013-02-13
      • 2017-08-15
      • 1970-01-01
      • 2022-01-23
      • 2021-03-01
      • 2019-11-28
      • 2020-11-14
      • 2020-09-01
      相关资源
      最近更新 更多