コマンドで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
}

○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
}

これを実行すると、

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

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

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

csvopen topics.csv

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

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

csvopencount

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

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

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