csv出力で内容をソートさせてかつマージさせる方法について

Avatar
tkt777
お世話になっております。

順番がバラバラのcsvファイルを特定の項目でソートして、かつ特定の項目が一致するものは

それより後ろの項目を連結して、再度csvに出力することってできますか。

インプットとアウトプットのイメージは以下です。

インプット----
id,name
003,KKK
001,HHH
003,NNN
002,MMM
004,GGG
001,YYY
----

アウトプット----
001,HHHYYY
002,MMM
003,KKKNNN
004,GGG
----

この記事は役に立ちましたか?

0が役に立ったといっています

コメント

  • Avatar
    aki
    コメントアクション Permalink
    なんとなくできそうかな、と思いきや、


    id の一覧(アウトプットの1列目の4行)は、グループ化とソートで取得できそうですが、

    name 連結がなかなか難題ですね!


    連結のために、繰り返し(データ件数) が使えそうです。


    id の一覧を1行毎に繰り返しすと、id をスクリプト変数に格納出来ます。

    id=001

    また、インプットのうちidが一致する行のnameを取得できます。

    HHH

    YYY


    さらに、これを1行毎に繰り返して、name をスクリプト変数に連結しながら格納し、

    name=HHHYYY

    を取得できます。


    これを、CSVに1行ずつ追加書き込みすることで、要件は満たせそうです。


    ・・・ちょっとパフォーマンスが気になりますね。
    0
  • Avatar
    tkt777
    コメントアクション Permalink
    aki さん


    回答ありがとうございます。
    教えていただいた内容を試してみたら、希望通りの出力が得られました。

    パフォーマンスについては、そんなに大きなcsvが入力データとして飛んでくる
    予定もないので今のところは大丈夫かなと思ってます。
    0

ログインしてコメントを残してください。