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には該当する行が含まれ、それを表示することができます。
関連記事

高度なモデルの開発ってなに?
高度なモデルの開発は、通常、複雑な問題に対処するために必要な技術や手法を使用して ...

ューヨークのタイムゾーンとかある?
はい、ニューヨークのタイムゾーンはAmerica/New_Yorkです。このタイ ...

線形分離より、非線形分離のほうが優位性があるのでは?
線形分離と非線形分離のどちらが優れているかは、問題の性質やデータの特徴に依存しま ...

パルス幅変調って?何の役に立つの
パルス幅変調(PWM)は、デジタル信号を使ってアナログ的な制御を行う手法の一つで ...

paizaクラウドで、PythonのDjangoでWEBサイトを作る
にアクセスして、サインアップする。メール登録して、メールからログインすればパイザ ...
ディスカッション
コメント一覧
まだ、コメントがありません