【问题标题】:Merge multiple columns into matrix python将多列合并为矩阵python
【发布时间】:2017-08-21 21:53:36
【问题描述】:

我在 python 中有几列我最终试图合并。现在我正在使用 zip 函数,但是在合并列后,我将它们输出为 CSV,并且格式很糟糕(而不是将列分开,zip 在我添加新列时合并列)。这是一个例子:

col1 = [text1, text2, text3, etc]
col2 = [str1, str2, str3, etc.]
col3 = [num1, num2, num3, etc.]

我希望它们像这样组合:

[[text1, str1, num1],
 [text2, str2, num2],
 [text3, str3, num3]]

从那里我将能够将该矩阵输出为 csv,其中列都是分开的。现在它看起来像这样:

我的代码

file_weights = similarity[0]
file_ranking = zip(filtered_and_cleaned, case_id)[1:]
file_ranking_2 = zip(file_ranking, file_weights)[1:]

输出

[[text1 str1, num1],
 [text2 str2, num2],
 [text3 str3, num3]]

我明白为什么我正在做的事情不起作用,我只是不知道如何解决它。

【问题讨论】:

  • 我错了。但是我猜想将您在此处共享的内容写入 csv 后的输出是错误的。如中所示,您给出了所需的列表而不是预期的列表。

标签: python csv merge zip data-processing


【解决方案1】:

zip 指向列列表的指针应该可以解决问题!

col1 = [text1, text2, text3]
col2 = [str1, str2, str3]
col3 = [num1, num2, num3]
print zip(*[col1,col2,col3])

在 Python 3 中,zip 返回一个迭代器。因此,您的结果中的list 将提供所需的输出!。

也就是说,

print list(zip(*[col1,col2,col3]))

输出格式如下!:

[[text1, str1, num1],
 [text2, str2, num2],
 [text3, str3, num3]]

希望对你有帮助。

编码愉快!

【讨论】:

  • 这太完美了。谢谢!
  • 如果您认为某个解决方案回答了您的问题,请接受该答案,以便将来任何人遇到类似问题时,可能会有正确的解决方案!
猜你喜欢
  • 2021-08-23
  • 1970-01-01
  • 2018-05-03
  • 2018-09-20
  • 2023-03-09
  • 2013-05-17
  • 1970-01-01
  • 2016-03-18
  • 2017-05-03
相关资源
最近更新 更多