【问题标题】:Python: form matrix from lists of listsPython:从列表列表中形成矩阵
【发布时间】:2017-03-25 01:18:45
【问题描述】:

我有以下数据类型

A=[1,2,3]
B=[['A', 'C'], ['B', 'C'], ['A', 'B']]
C=[[0 2]
 [1 2]
 [2 1]]

我想用以下输出形成一个new_matrix

       index    new_value1      new_value2
1       1        ['A','C']        [0,2]
2       2        ['B','C']        [1,2]
3       3        ['A','B']        [2,1]

其中index 列具有来自A 列表的值,new_value1 具有来自B 列表的值,而new_value2 具有来自C 列表的值。这些值按迭代顺序排列。

任何帮助将不胜感激。

【问题讨论】:

  • 首先,您需要DataFrame,而不是矩阵。您是否尝试过使用 DataFrame 构造函数? pd.DataFrame({'index':A, 'new_value1':B, 'new_value2':C})

标签: python python-2.7 pandas


【解决方案1】:

将变量放入字典中,并使用该字典创建数据框:

a = dict(
    index=[1,2,3],
    new_value1=[['A', 'C'], ['B', 'C'], ['A', 'B']],
    new_value2=[[0, 2], [1, 2], [2, 1]]
)
pd.DataFrame(a)

【讨论】:

  • 感谢您的回答,但是我遇到了一个问题,因为 new_value2 不是一维的,我得到“数据必须是一维的错误”
  • 我不确定您的错误。我发布的代码适用于 Python 2.7
  • 如您所见,new_value2 在内部列表之间没有逗号分隔符
  • 是的,我不得不修改您的列表C,因为它会引发SyntaxError
猜你喜欢
  • 1970-01-01
  • 2017-05-03
  • 2017-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-29
  • 2016-05-27
相关资源
最近更新 更多