コマンドでCSVを手軽に開けるよう改善してみたが、Excelや専門のツールを使わずにササっと数字の並びをターミナルで閲覧できることは、"好奇心"を醸成するのに持って来いの試みである。自身が知っているキーワードに並ぶ数字を俯瞰することでシンプルに見えてくることもあるだろう。

GitHubのKevin Xu氏は、公式ブログで公開しているGitHub Innovation Graph(データセット)から見えることを紹介しているが、"今のところ懸賞はありませんが、これらのCSVファイルには、語られるのを待っている魅力的なデータストーリーが散りばめられていると考えています"とのことだ。前回、上記のGitHubのCSVファイル(dataフォルダ)をそのままローカルにダウンロードして、csvopenしてみていた。

csvopen

function csvopen {
    param(
        $A,
        $B
    )
    Import-Csv $A | Sort-Object {[int]$_.$B} -Descending
}
  • dataフォルダ内のdevelopers.csvをcsvopen developersでソート表示

    dataフォルダ内のdevelopers.csvをcsvopen developersでソート表示

Sum変数で総数を表示させる

開くだけに留めるのがシンプルな自作コマンドの本分であろうが、developers総数をこのままターミナルで表示させたいなと思った。延べ人数なので意味はないが、数字をSumする機能もコマンドできれば、ちょっとした好奇心を深堀りできる。変数を使った加算ループで可能である。Import-Csv $A | Sort-Object {[int]$_.$B} -Descendingの処理をパイプで渡してForEach-Objectする。

csvopensum

function csvopensum {
    param(
        $A,
        $B
    )
     $sum = 0

    Import-Csv $A | Sort-Object {[int]$_.$B} -Descending |
       ForEach-Object { 
       $sum += [int]$_.$B
       $_
                }
     $sum
}

これを実行すると、

  • notepad $PROFILEでプロフィールに記述し、.$PROFILEで反映させてdevelopers.csvのdevelopersを対象にcsvopensumを実行

    notepad $PROFILEでプロフィールに記述し、.$PROFILEで反映させてdevelopers.csvのdevelopersを対象にcsvopensumを実行

  • 末尾に総数を加算した最後の$sumが表示される

    末尾に総数を加算した最後の$sumが表示される

developersの延べ総数が最後に表示される。

開発対象となるtopics列をカウントしてみたい

ダウンロードした別のCSVを見ていると、topics.csvというのがある。これをcsvopenで開く。

csvopen topics.csv

すると下記のようにPython、PHP、CSS、aws、data-scienceのようにプログラミング言語やジャンルを意味するtopicsが割り振られたCSVを閲覧できる。

  • topics.csvでは、ジャンルともいえるtopicsがデータにある

    topics.csvでは、ジャンルともいえるtopicsがデータにある

これをカウントしてみたい。PowerShellの公式APIを調べるとGroup-Objectがある。例6にある「名前でプロセスをグループ化する」がそのままやってみたいことだ。これを参考にして、csvopenを改修すると以下のcsvopencountになる。

csvopencount

function csvopencount {
    param(
        $A,
        $B
    )
    Import-Csv $A | Group-Object $B | Where-Object {
       $_.Count
    }
}

これをプロファイルに記述、.$PROFILEで反映し実行すると、

  • topicsをカウントした形で表示してくれる

    topicsをカウントした形で表示してくれる

しっかりとした分析をするには、当然Excelほか専用のクラウド、SaaSツールが必要だが、4桁を超えるものはJavaScriptなど従来のメジャートピックスだが、メジャーとういえるであろう3桁越えには、やはりaiやllm、各AIベンダーの名前を冠するものも増えてきているようだ、とパッと見に思えたのであった。