複数のCSVファイルをマージして、一致する列と一致しない列を取得します。

複数のCSVファイルをマージして、一致する列と一致しない列を取得します。

ファイル1

abram,john,steve,mark,daniel,stokes
19,567,44,0,77,9

ファイル2

john,mark,skates
999,1,1

ファイル3

abram,stokes
55,66

ファイル4

abram,daniel,john,mark,skates,steve,stokes,yasmin
0,0,0,0,0,0,0,0

私が必要とする結果は -

マージ.csv

        abram  daniel  john  mark  skates  steve  stokes  yasmin
File1     19     77      567    0     0       44      9        0

File2      0      0      999    1     1        0      0        0

File3     55      0        0    0     0        0     66        0

File4      0      0        0    0     0        0      0        0

ベストアンサー1

ミラーの使用(https://github.com/johnkerl/miller)、入力CSVファイルのみを含むフォルダから始めて

mlr --c2p put '$filename=FILENAME' then unsparsify --fill-with "0" then reorder -f filename *

あなたは得るでしょう

filename abram john steve mark daniel stokes skates yasmin
File1    19    567  44    0    77     9      0      0
File2    0     999  0     1    0      0      1      0
File3    55    0    0     0    0      66     0      0
File4    0     0    0     0    0      0      0      0

見やすく印刷されたテーブルの代わりにCSV出力を取得するには、オプションを--c2pに変更します--csv

おすすめ記事