データサインティスト初心者のぬる~い業務内容を振り返ります。
最近、とある案件にアサインされたため本格的にデータサインエスの日々が始まりました。
案件内容としては、設備の点検記録から次回パーツ交換のタイミングを予測するというもの。
データは時系列でないにも関わらず、「いつ?」の予測を求められてます。
まずは沢山あるファイルの結合からターゲット可視化までやっていきます!
1日のタイムテーブル
【Day 13】
出社はしません。今日も感染者が多いです。
- 8:40 起床
- 9:00 業務開始。
- まずはファイルの結合。8つあるファイルを読込み、一つのデータフレームにしていきます。
- ファイルを参照するのに鬼役に立つのが”globe”。めっちゃ優秀です。
- 次のように「~」にデータのあるファイルパスを入れてやると、そこのフォルダにあるファイル名を全て取得してくれます。
import globe file_names = globe.blobe('~/*.csv')
「*」はワイルドカードと呼ばれる、なんでも当てはまる文字です。つまり、上記の例だと指定したフォルダ内の「.csv」が付くファイル名を全て取得してくれます。 - ”globe”で取得できるのはファイル名なので、他の手段でファイルにアクセスする必要があります。自分流ですが、複数ファイルを一つのデータフレームにする必殺技です。
import globe import pandas as pd file_names = globe.blobe('~/*.csv') dfs = pd.DataFrame() #dfsにファイルを縦に繋げていきます。 for file in file_names: df = pd.read_csv(file_name) dfs = pd.concat([dfs,df],axis=1)
これ、ファイルが複数あって一つのデータにしたいときはコピペして使ってます。 - 実際にファイルを読取る際に注意したいこと
- ファイルの最初の数行はどうでもいいタイトルやら日付やらが入っている
⇒ read_csv(ファイル名, header=”読込み開始した行番号”)で解決 - ファイルを読込んた結果、文字化けする
⇒ read_csv(ファイル名, encoding=”対応している文字コード名”)で解決 - 特にエクセル、表の一番に※印で文字が入っていたりする
⇒ エクセルファイルを事前に確認しましょう - エクセルの場合、シートが複数ある場合がある
⇒ これはあらかじめエクセルを見るしかありません。隠れたシートを見つけ出すのは困難です
- ファイルの最初の数行はどうでもいいタイトルやら日付やらが入っている
- 12:00 お昼
- ご飯 + 振りかけ
~~前半戦終了~~
- ご飯 + 振りかけ
- ここから先は、Python片手にパワポも一緒に作ってしまいます。
- 13:00 データの件数を確認
- データ件数は簡単に確認できます。自分はこれしか使いません。
import pandas as pd dfs.shape
すると、[”行数”, ”列数”]という形で表示してくれます。超楽ちんです
[500,5]
- 使用したファイルとデータ件数だけでもパワポの良い材料になります。
- データ件数は簡単に確認できます。自分はこれしか使いません。
- 14:00 ターゲットの確認
- 午前中に分析するためのデータを用意しました。さて、次は何に手をつけましょう?
- 自分は、まず最初にターゲットとなる項目を確認します。まずは値の種類の確認です。ここ使うvalue_counts()は超優秀です。なぜならば入力されたデータの種類と該当するデータ数が一瞬でわかるからです。
import pandas as pd dfs['target'].value_counts(dropna=False)
以下のようなデータがあったとします
No. target 1 A 2 A 3 A 4 B 5 C
A 3 B 1 C 1
- するとだいたいの場合期待しないデータが含まれてきます。「‐」とか「1」(全角)とか
- そしてお客さんとデータについてディスカッションを行います。
- 欠損値ってどうして発生するの?
- ハイフンの意味は?どう扱う?
- 結果の個数にバラつきあるのはどうして?などなど
- お客さんに見せるときにはデータをグラフ化して見やすくするのが良いです。すぐに手っ取り早くグラフを作るにはやっぱりエクセルが優秀
- 17:30 業務終了
さて、次はもう少しデータを詳しく見ていきたいと思います。
ちょっとしたやり方を紹介していきます!
成果物
- お客様からいただいたファイルの結合~データの簡単な確認を実施!
- Pythonで操作しながらパワポも同時に作成!
以上!
コメント