Transpose CSV
Paste a CSV or TSV, or choose a file: row 1 becomes column 1, row 2 becomes column 2, and so on. Quoted fields stay intact, rows shorter than the widest row are padded with empty cells so nothing shifts, and the result can be copied or downloaded as CSV or Excel. Nothing is uploaded.
Frequently asked questions
How do I transpose in Excel?
Copy the range, right-click the target cell, choose Paste Special and tick Transpose. =TRANSPOSE(A1:D10) does the same as a live formula in Excel 365 and Google Sheets.
How do I transpose a CSV in Python?
With the standard library: rows = list(csv.reader(open('in.csv', newline=''))); then csv.writer(open('out.csv', 'w', newline='')).writerows(itertools.zip_longest(*rows, fillvalue='')). zip_longest pads short rows like this tool does; plain zip(*rows) would silently drop cells.
What happens to rows of different lengths?
The result has as many rows as the widest input row; missing cells are left empty, so every value keeps its position.
Is my data sent to a server?
No. The page has no analytics and makes no network requests with your input.