from bs4 import BeautifulSoup import pandas as pd # HTMLデータ html = “”” <table class=”grid-look”> <thead class=”product-grid-top”> <tr> <td>Color</td> <td>Size</td> <td>Stock</td> </tr> </thead> <tbody id=”product-grid” class=”product-grid-center”> <tr class=”item”> <td>BLACK</td> <td>S</td> <td>在庫有り</td> </tr> <tr class=”item”> <td>BLACK</td> <td>M</td> <td>在庫有り</td> </tr> <tr class=”item”> <td>GRAY</td> <td>L</td> <td>廃番</td> </tr> <tr class=”item”> <td>BLACK</td> <td>XL</td> <td>在庫有り</td> </tr> </tbody> </table> “”” # BeautifulSoupでHTMLを解析 soup = BeautifulSoup(html, ‘html.parser’) # データを抽出してリストに格納 data = [] for tr in soup.find_all(‘tbody’)[0].find_all(‘tr’): tds = tr.find_all(‘td’) if len(tds) == 3: data.append([tds[0].text.strip(), tds[1].text.strip(), tds[2].text.strip()]) # データをDataFrameに変換 df = pd.DataFrame(data, columns=[‘Color’, ‘Size’, ‘Stock’]) # 結果を表示 df このdfから、BLACKのMを探す方法
DataFrameから条件に合う行を抽出する方法はいくつかありますが、一般的な方法は以下の通りです。
- ブールインデックスを使用する方法:
python
black_m = df[(df['Color'] == 'BLACK') & (df['Size'] == 'M')]
- クエリを使用する方法:
python
black_m = df.query("Color == 'BLACK' and Size == 'M'")
どちらの方法でも、BLACKでかつMサイズの行が抽出されます。black_mには該当する行が含まれ、それを表示することができます。
関連記事

外注管理
社内スタッフが担当できない業務は、外部へ依頼することとなる。外注スタッフとも良い ...

githubのコミットして同期とは
GitHubでのコミットと同期は、ソースコードやプロジェクトの変更をリポジトリに ...

特定のIPアドレスを許可または拒否する場合に /32 を使用したほうがいいの?
設定の文脈によって異なりますが、一般的にはどちらを選択しても機能的には同じです。 ...

在庫管理の回帰をしたい
在庫管理における回帰分析では、在庫レベルや需要の予測を行い、適切な在庫レベルを維 ...

非線形の数理最適化はどうやるの?遺伝的アルゴリズム以外にもある?
非線形の数理最適化問題は、線形制約条件や目的関数を持つ問題とは異なり、目的関数や ...
ディスカッション
コメント一覧
まだ、コメントがありません