Home > Back-end >  How to convert column to rows
How to convert column to rows

Time:08-10

I have csv file contain on 6 columns like this:

1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 
1 2 3 4 5 6 7 8

I need to convert this columns to rows to be like this:

1 1 1 1 1 1 
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
5 5 5 5 5 5
6 6 6 6 6 6
7 7 7 7 7 7
8 8 8 8 8 8

How can do that please?

This is input enter image description here

This is the output enter image description here

CodePudding user response:

Try:

import csv

with open("input.csv", "r") as f_in, open("output.csv", "w") as f_out:
    reader = csv.reader(f_in, delimiter=" ")
    writer = csv.writer(f_out, delimiter=" ")

    writer.writerows(zip(*reader))

Contents of input.csv:

1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 
1 2 3 4 5 6 7 8

Contents of output.csv after the script run:

1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
5 5 5 5 5 5
6 6 6 6 6 6
7 7 7 7 7 7
8 8 8 8 8 8

CodePudding user response:

you are looking for a table pivot method

if you are using pandas , this will do the trick https://pandas.pydata.org/docs/reference/api/pandas.pivot_table.html

  • Related