前提
以下のように辞書の配列形式でスクレピング結果を作っておく必要があります。
1 2 |
# スクレイピング結果 dictinary_list = [{'yatin': 80000, 'title': '新宿'}, {'yatin': 40000, 'title': '町田'}] |
具体的なスクレイピング結果の作り方については以下の記事で解説しています。
【Python】「BeautifulSoup」について
実装
リスト形式を表の形に変換する
pandasのDataFrameというメソッドを使います。
1 2 3 4 5 6 |
import pandas as pd # スクレイピング結果 dictinary_list = [{'yatin': 80000, 'title': '新宿'}, {'yatin': 40000, 'title': '町田'}] df = pd.DataFrame(dictinary_list) |
表形式のデータを確認
表の形に変換したデータは以下の文法で確認できます。
1 2 3 4 5 |
print(df.head()) yatin title 0 80000 新宿 1 40000 町田 |
表の大きさを確認
1 2 3 |
print(df.shape) (2, 2) |
上記例で言えば、表が2列、2行になっていると言えます。
データ件数を取得する。
1 2 3 |
print(len(df.title)) 2 |
DataFrameにはtitileという属性が必須になるのでtitleの個数を表示すればいけます。
CSVに変換する。
1 |
df.to_csv('ファイル名.csv', index=None, encoding='utf-8-sig') |
index=None
encoding='utf-8-sig
pandasとcsvモジュールの違い
結論としてはほぼ明確な違いはないですが世の中的にはPandasを使ってCSV出力を使った方が良いといわれることが多いです。
CSVモジュール
Python標準のCSV出力のモジュールです。Python標準でインストールされており別途インストールが不要なので軽くなるというメリットはあります。
Pandas
CSVだけでなく、ExcelやJSON、HTMLなど様々な形式のデータを扱うことができます。また、AIのためのデータ前処理など様々な用途に活用されていたりします。CSVモジュールだと二手間かかることが、Pandasだとto_csvのひと手間で実装可能です。(ただ、厳密にいえばDataFrameへの変換があるのでそこまで労力は変わらないかもです。)
この記事へのコメントはありません。