pandasを使ってdict型をデータフレーム化

ブログ自動投稿目指して試行錯誤するシリーズ

前回はこちら。

なんやらかんやら実装して、立会外分売の情報をスクレイピングして、こんな感じのdict型に情報をまとめるところまで進みました。

がっつり時間取れないし、色々と調べながらなので歩みは遅いですが、止まっては無いという状態。

{'name': ['XXX社', 'BBB社'],
 'code': ['1111', '2222'],
 'expfirstdate': ['', '2021/6/3'],
 'explastdate': ['', '2021/6/9'],
 'exedate': ['2021/5/31', ''],
 'stocknum': ['45,000株', '50,000株'],
 'finprice': ['3,380円', '-円'],
 'exepcice': ['3,279円', '-円'],
 'discountrate': ['2.99%', '-%'],
 'minreqnum': ['100株', '100株'],
 'maxreqnum': ['1,000株', '1,000株'],
 'market': ['JQ', 'JQ'],
 'issuestock': ['901,151株', '10,796,793株'],
 'kubun': ['信用', '信用'],
 'dekidaka': ['1,600株', '200株'],
 'per': ['26.0倍', '9.1倍'],
 'pbr': ['0.66倍', '0.88倍']}

この情報を元に投稿をしていくことになります。

ただ、dict型だと中にどんな情報が入っているのかパッと見て良く分かりません。

このままだとデータとして扱いづらいのでpandasを使用してデータフレームの形にしてみました。

# webInfoListという変数に上記のdict型が入っているとします。
import pandas as pd
df = pd.DataFrame(webInfoList)

dfの中身はこうなります。

dict型に比べてパッと見でデータが理解しやすくないでしょうか?

また、見やすくなるだけでなく、データへのアクセスも簡単になります。

codeが1111の会社の情報を抜き出したいという場合、こんな感じで引き抜けます。

df[df.code == '1111']

実行結果はこうなります。

実施日が今日以降とか、ディスカウント率が3%未満とか、条件に該当するデータだけを簡単に引き抜けて便利です。

何となくMATLABの配列とかセル配列の操作に似てますね。

コメント

タイトルとURLをコピーしました