gpt4 book ai didi

arrays - 使用 FasterCSV 将不均匀的行转换为列

转载 作者:数据小太阳 更新时间:2023-10-29 07:23:31 24 4
gpt4 key购买 nike

我有一个 CSV 数据文件,其中的行可能有很多 500+ 列,而有些列则少得多。我需要转置它,以便每一行成为输出文件中的一列。问题是原始文件中的行可能不都具有相同数量的列,所以当我尝试数组的转置方法时,我得到:

`transpose': element size differs (12 should be 5) (IndexError)

是否有适用于不均匀数组长度的转置替代方法?

最佳答案

我会插入空值来填充矩阵中的空洞,例如:

a = [[1, 2, 3], [3, 4]]

# This would throw the error you're talking about
# a.transpose

# Largest row
size = a.max { |r1, r2| r1.size <=> r2.size }.size

# Enlarge matrix inserting nils as needed
a.each { |r| r[size - 1] ||= nil }

# So now a == [[1, 2, 3], [3, 4, nil]]
aa = a.transpose

# aa == [[1, 3], [2, 4], [3, nil]]

关于arrays - 使用 FasterCSV 将不均匀的行转换为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/250789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com