【IT系社員必見】Pythonを仕事で使ってみる
どうも、Keiです。
Hunter X Hunterが再開しましたね。
いきなりサレサレがピンチに。晩餐会まで死ぬに5万ジェニー。
今回は、プログラミング言語「Python」について紹介します。
理系の皆さんで知らない方はもちろん、IT系の文系の方々も知っておいて損はありません。
大量のデータを処理・分析しなければならないこの時代、いつまでもエクセルじゃ限界を迎える日が来るかもしれません。
エクセルでデータ処理をしている際に、ピボットテーブルや関数処理では実現できない、「もっとこうしたいんだよな~」がPythonで実現できるかもしれません。
プログラミング初心者にPythonが向いている理由
ぼくは、これまでにプログラミング言語はC、Java、Perl、Javascriptと勉強してきましたが、Pythonが一番書きやすいと思います。
その理由ですが
- 文末のピリオド的な記号がいらない(インデントで代用)
- 便利なライブラリがたくさん出ている(Webとの相性も良い)
- 書いた内容が見やすくてきれい(主観)
が挙げられます。
プログラミング言語は自分との相性もありますが、普及率が多い方がトラブルシューティングがWebで探しやすいですし、便利なライブラリを既に誰かが書いているかも知れません。
おすすめエディタ
エディタはPythonだからというわけではありませんが、sublime textがおすすめです。
プログラムを書く際に文法から、読みやすいように色を変えたりエディタ内でプログラムを実行したり、デバッグしたりなど非常に使いやすいです。
また、ダークな見た目もかっこいいですよね(主観)
Pythonを書いてみよう
さて、今回はPythonのインストール方法や"Hello World"の書き方を一から書いていくわけではありません。
Pythonを使ってどのようなことができるのか、コード付きで紹介したいと思います。
ちなみに、ぼくはWindowsでPythonを書いていますが、VMでLinuxを入れているわけではなく、「Bash on Ubuntu on Windows」を使っています。
平たく言うと、windows10でUbuntu(Linux)環境が使えるということです。
プログラミングするなら、Unix環境(MACならデフォルトで入っている)を入れた方が良いでしょう。
さて、CSVファイルを読み込むプログラムを書いてみましょう。
ファイルを読み込み、CSVを取り込む
まず、取り込みたいファイルが"text.csv"というCSVファイルだとしましょう。
これをlstというリスト変数に取り込むことを考えましょう。
import re f = open(text.csv, 'r') lst = [] for line in f: line_tmp =re.sub('\r\n|\s|\n','',line) block = line_tmp.split(seperater) lst.append(block) f.close()
text.csvが実行するpythonと違うフォルダにある場合は、"folder/text.csv"などフォルダの絶対パスか相対パスを指定します。
次に、CSVファイルならセルごとに変数に格納していきます。
for line in f:
ここでは、text.csvを一行ずつ上からlineという変数に取り込みます。
CSVだと、1行目の1列~3列にそれぞれA、B、Cという文字が記述されているとすると、「A,B,C\n」のようになっています。\nは改行記号です。
次に、この改行記号は不要なのでこれを除き、line_tmpという変数に入れてあげます。
line_tmp =re.sub('\r\n|\n','',line)
上の例では、\r\nもしくは\nを「無」に置き換えています。
re.sub(第1変数,第2変数,第3変数)では、第3変数内に第1変数がある場合、それを第2変数に置き換えるというものです。
今回は第2変数に何も指定していないので、\nが無に置き換わる。つまり、削除されるということになります。
block = line_tmp.split(',')
次に、上ではblockという変数にA,B,Cをカンマで区切ってリスト形式で保存しています。block=['A','B','C']という感じです。
lst.append(block)
最後の一行では、blockに入れたリストをさらにリスト形式で保存してます。
例えば、[ ['A', 'B', 'C'],]という感じです。
ここまでで、1行目での操作は終わりです。
2行目があれば、同様の操作をします。
例えば、
1行目がA,B,C
2行目がD,E,F
3行目がG,H,I
のときは、lstという変数には最終的に[ ['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'] ]というように格納されます。
このように格納すると、どのような利点があるのでしょうか?
AからIが数字のとき、全ての数を足したいとき
sum = 0 for line in lst: for column in line: sum += column
このとき、上の例でいうとlineには['A', 'B', 'C']が代入され、columnにはA、B、Cが順に代入されます。
1列目のみの和を計算したいとき
sum = 0 for line in lst: sum += line[0]
このように、列と行を指定して全てのセルにアクセスすることができるので、柔軟な処理が可能となります。
さて、いかがでしたでしょうか?
今回の記事が皆さんのpython勉強の力となれば幸いです。