<table class=”grid-look”> <thead class=”product-grid-top”> <tr> <td class=”nav prev”>&nbsp;</td> <td>GRAY/BLACK(MC5SF)</td> <td>WHITE/BLUE(MC2SF)</td> <td>BLACK/RED(MC1SF)</td> <td>BLACK/YELLOW(MC4HSF)</td> </tr> </thead> <tbody id=”product-grid” class=”product-grid-center”> <tr class=”item”> <td>S</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> </tr> <tr class=”item”> <td>M</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> </tr> <tr class=”item”> <td>L</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> </tr> <tr class=”item”> <td>XL</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> </tr> </tbody> </table> “”” 上記の情報から、下記の出力をdataframeでだしたい。 Color,Size,Stock GRAY/BLACK(MC5SF),S,廃番 GRAY/BLACK(MC5SF),M,廃番 GRAY/BLACK(MC5SF),L,廃番 WHITE/BLUE(MC2SF),S,廃番 WHITE/BLUE(MC2SF),M,廃番

理解しました。与えられたHTMLテーブルからデータを取得し、DataFrameに格納する方法はいくつかあります。以下に、BeautifulSoupを使用してHTMLからデータを取得し、DataFrameに格納する方法を示します。

python
from bs4 import BeautifulSoup import pandas as pd html_content = """ <table class="grid-look"> <thead class="product-grid-top"> <tr> <td class="nav prev">&nbsp;</td> <td>GRAY/BLACK(MC5SF)</td> <td>WHITE/BLUE(MC2SF)</td> <td>BLACK/RED(MC1SF)</td> <td>BLACK/YELLOW(MC4HSF)</td> </tr> </thead> <tbody id="product-grid" class="product-grid-center"> <tr class="item"> <td>S</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> </tr> <tr class="item"> <td>M</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> </tr> <tr class="item"> <td>L</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> </tr> <tr class="item"> <td>XL</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> </tr> </tbody> </table> """ # HTMLを解析 soup = BeautifulSoup(html_content, 'html.parser') # テーブルからデータを取得 data = [] for row in soup.find_all('tr')[1:]: cells = row.find_all('td') size = cells[0].text for i in range(1, len(cells)): color = soup.find_all('td')[i].text stock = cells[i].text data.append([color, size, stock]) # DataFrameに格納 df = pd.DataFrame(data, columns=['Color', 'Size', 'Stock']) print(df)

このコードを実行すると、要求された形式のDataFrameが得られます。

未分類

Posted by ぼっち