如何在CSV文件中转置数据集?

发布于 2021-01-29 19:03:10

例如,我想转换:

Name,Time,Score
Dan,68,20
Suse,42,40
Tracy,50,38

进入:

Name,Dan,Suse,Tracy
Time,68,42,50
Score,20,40,38

编辑:原始问题不正确地使用术语“转置”。

关注者
0
被浏览
51
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    如果整个文件内容都适合内存,则可以使用

    import csv
    from itertools import izip
    a = izip(*csv.reader(open("input.csv", "rb")))
    csv.writer(open("output.csv", "wb")).writerows(a)
    

    您基本上可以将zip()izip()视为转置操作:

    a = [(1, 2, 3),
         (4, 5, 6),
         (7, 8, 9)]
    zip(*a)
    # [(1, 4, 7),
    #  (2, 5, 8),
    #  (3, 6, 9)]
    

    izip() 避免立即复制数据,但基本上会这样做。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看