-1

I have multiple csv files (around 100s) which has same headers in each of those. However, the sequence of header in every file is different. How shall I merge them in one csv where right data is placed in right column

Ex:

  1. csv has headers : {header1, header2, header3, ... header10}
  2. csv has headers : {header2, header5, header10, ... header9}

I want to merge them such that resultant.csv looks like {header1, header2, header3, ... header10} but has data rightly mapped into each column. Like header1 data from 1.csv is correctly mapped with header1 data from 2.csv and so on.

Neil
  • 11
  • 2

1 Answers1

4

It's not Python but it could solve your goal. Using Miller (https://github.com/johnkerl/miller), a great command line utility, the command is

mlr --csv unsparsify ./*.csv >output.csv

If you want also to reorder the fields

mlr --csv unsparsify ./*.csv then reorder -f header1, header2, header3, ... header10 >output.csv
aborruso
  • 4,938
  • 3
  • 23
  • 40