ここ数年流行っているPythonですが、僕もご多分に漏れず4年ほど前からハマりました!!
それまではインフラエンジニアらしく、AzureやMicrosoft 365向けにはPowerShell、データ解析にはbash/zshなどを使ってきました。しかし、5年前からはデータ解析にはほぼPythonで、ここ2年ぐらいはAzureでもPythonになりました。
今回はなぜ、PowerShellやBashではなく、Pythonに代わったのかをご説明します。
理由その1
スクリプト言語である。
ガッツリの開発系ではない私は極端な処理速度や他者との共有は必要ではなく、すぐに動かせて仮想環境が簡単に作れるPythonは魅力的です。そのため、GO言語やJavaのような言語はほとんど利用しません。
理由その2
少ない文字数、行数で実装できる。
Javaのようなお作法はなく、一方でJavaやPowerShellのような多種多様な外部ライブラリ(パッケージ)があるため、必要なパッケージを選択することで、極端に少ない行数でやりたいことが実現できます(その4とも関係あり)。
理由その3
PowerShellと比較してデータ解析が早い。
PowerShellに比べてファイルからデータを読み込んで処理する場合にデータが大きければ大きいほど処理が加速度的にはやい。体感的には1GBのCSVファイルをPowerShellで処理すると、1時間ぐらいかかるところが、Pythonだと数十秒から数分で完了する。
理由その4
便利なモジュールが多い。
以下のようなデータがあったとします。
No, A, B
1, 10, 20
2, 5, 4
3, 2, 3
4, 10, 25
このデータでカラムAとカラムBの結果を足して、カラムCを作ろうとうするとPowerShellでは、ループを回す必要があります。
しかし、PythonではPandasというパッケージを使うことで以下のような一行で完結します。
df['C'] = df['A'] - df['B']
また、カラムAの値が同じ物の名から、最小のカラムBの値をを探したい場合には以下のようになります。
df.groupby('A')['B'].transform('min')
理由その5
流行っているからネットに情報が多い。
やはりに乗ると、情報が多くあります。多くの先達がいろいろな試行錯誤と検証をして、私がやりたいと思っていることを実現する方法を検討しています。
理由その6
PyCharmやvscodeにアドインできるAIアシスタントが秀逸。
ほぼやりたいことを掛けばそれっぽいコードを書いてくれます。もちろん、手直しはある程度必要ですが、それでもかなり楽になります。
Comments