【发布时间】:2021-02-13 06:34:53
【问题描述】:
我已经看到了很多关于这个的其他问题,但我的情况有点不同。
我正在尝试制作/找到一个可以按以下方式合并 csv 文件的程序。
file1.csv
colHeadders 1col1head 1col2head 1col3head ...
row1head 1data[1][1] 1data[1][2] 1data[1][3] ...
row2head 1data[2][1] 1data[2][2] 1data[2][3] ...
headNotShared 1data[3][1] 1data[3][2] 1data[3][3] ...
row4head 1data[4][1] 1data[4][2] 1data[4][3] ...
...
file2.csv
colHeadders 2col1head 2col2head 2col3head ...
row1head 2data[1][1] 2data[1][2] 2data[1][3] ...
row2head 2data[2][1] 2data[2][2] 2data[2][3] ...
row4head 2data[3][1] 2data[3][2] 2data[3][3] ...
headNotShared 2data[4][1] 2data[4][2] 2data[4][3] ...
...
merged.csv
colHeaders 1col1head 1col2head 1col3head ... 2col1head 2col2head 2col3head ...
row1head 1data[1][1] 1data[1][2] 1data[1][3] ... 2data[1][1] 2data[1][2] 2data[1][3]
row2head 1data[2][1] 1data[2][2] 1data[2][3] ... 2data[2][1] 2data[2][2] 3data[3][2]
row4head 1data[4][1] 1data[4][2] 1data[4][3] ... 2data[3][1] 2data[3][2] 2data[3][3] ...
...
另外棘手的部分是文件可能不会共享所有标题,在这种情况下,我希望合并的 csv 仅包含具有共享标题的行。如果有帮助,我正在使用的确切文件是大型甲基化 prfile,我正在尝试预处理数据。文件的实际外观如下:
------ 03--34 08--45 08--59 ...
cg000000957 0.8950 0.8876 0.8953 ...
cg000001349 0.7687 0.7687 0.7700 ...
...
------ 03--34 08--45 08--59 ...
cg000000957 0.8951 0.8877 0.8954 ...
cg000001101 0.6013 0.6100 0.6022 ...
...
知道行标题按升序排列可能会有所帮助。这些是大型文件,超过演出,因此速度至关重要。语言并不重要,我尝试编写一个 bash 脚本来执行此操作,但无济于事。 csv 文件为 txt 格式,由 \space 制表符分隔。
【问题讨论】:
标签: java python bash csv optimization