Python Read csv files in a column?

后端 未结 3 1622
挽巷
挽巷 2021-01-25 13:22

Is it possible to read csv files in columns instead of rows in python?

e.g. if i have a csv file like this:

a b c
1 0 1
1 4 1

How woul

相关标签:
3条回答
  • 2021-01-25 13:35

    You are looking for transpose functionality. To solve your problem,

    1. First read csv as rows and create row wise tuples in a list ex: [(a,b,c),(1,0,1),(1,4,1)..]
    2. Transpose above list using any of the solutions present in Transpose a matrix in Python.

    Post transpose , your data will look like [(a,1,1),(b,0,4)..]

    0 讨论(0)
  • 2021-01-25 13:37

    You can use something like this:

    # Open file and read lines
    input_file = open('filename.csv')
    lines = input_file.readlines()
    
    # Create list with n sublists (n - number of columns)
    l = [[] for _ in lines[0].split('\t')]
    
    # Fill in sublists
    for line in lines:
        for i, column in enumerate(line.split('\t')):    
            l[i].append(column)
    
    0 讨论(0)
  • 2021-01-25 13:48

    use zip(*reader).

    some.csv

    a b c 
    1 0 1 
    1 4 1
    

    scrip.py

    import csv 
    with open('some.csv', 'rb') as f:
        reader = csv.reader(f, delimiter=' ')
        print zip(*reader)
    

    output:

    [('a', '1', '1'), ('b', '0', '4'), ('c', '1', '1')]
    
    0 讨论(0)
提交回复
热议问题