はじめに
前回車のパーツをクローリングしてCSVとして書き出すところまでのコードを公開しました。
少しコードを改善したので、下記に貼り付けておきます。
こちらになります。time.sleep(3)をつけてきちんと、待機時間を作りました。
その他、CSVにきちんと書き出す部分がきちんとしていなかったので、きちんといたしました。
さて、これを使って何をするか?
まず、自分が所有する車のデータがどれくらいあるかのクリーニングをしましょうかね。
この解析にはJupyternotebookを使います。
まずはimport関連ですね。
import pandas as pd
df = pd.read_csv(‘./before.csv’, index_col=0)
df.head()
今回、前回取得したcsvを複製して、before.csvという名前で保存して、読み込みます。
そして、df.head()で最初の5行を出力してみましょう。
予想通り、前回クローリングかけたすべてのデータの頭部分だけ表示できました。
車種のカラムを取得する
そうしましたら、次に車種、今回でいうとcarのカラムの中身を取ってきましょう。
df[“car”].head()
はい、取れましたね。
次にやることは自分の車種をクレンジングすることです。
ローレル、シットくんをクレンジング作業
まずコードですが、
df.loc[df[“car”].str.contains(‘ローレル’)]
carのカラムの中でローレルの文字列を含んだものを洗い出します。
そうすると、C35ローレルが僕の車種なのですが、C33、C34等も含まれてしまっています。
一度、ローレルを含んだデータを変数に入れましょう。
dflaurel = df.loc[df[“car”].str.contains(‘ローレル’)]
len(dflaurel)
と出力してみましょう。
すると、607件ローレルを含んだ商品があることがわかりました。
C35ローレルに絞っていきましょう。
最終的にdflaurelfinalという変数に格納します。
dflaurelfinal = dflaurel.loc[dflaurel[“car”].str.contains(‘35’)]
そして、数を見てみます。
len(dflaurelfinal)
166件まで減りました。むしろ減ってしまった・・・が正しいですね。
最後にCSV出力します。
dflaurelfinal.to_csv(‘c35laurel_final.csv’)
はい、ファイルの完成!一応完成品のリンクも貼っておきます。
さいごに
このようなフローで、自分の車種で絞ることが出来ました。
次は価格帯を調べていきたいですね。
車のパーツって高価なものが多いので、どうやったら安く、または型落ちであったり、中古品から探せるのか?
突き詰めていきたいと思います。