如何创建一个空数据框并在循环中不断向其中插入数据?

我从网站上抓取了一些表格数据。网站上的实际表格如下所示 -

http://img4.mukewang.com/64b642b6000179ff06500206.jpg

我使用 beautifulsoup 来获取这种格式的数据 -


[<td class="TableHeadingLeft" width="175">

                        Team

                    </td>,

 <td class="TableHeadingRight" width="35">

                        Mat

                    </td>,

 <td class="TableHeadingRight" width="35">

                        Won

                    </td>,

 <td class="TableHeadingRight" width="35">

                        Lost

                    </td>,

 <td class="TableHeadingRight" width="35">

                        Tied

                    </td>,

 <td class="TableHeadingRight" width="35">

                        N/R

                    </td>,

 <td class="TableHeadingRight" width="45">

                        Points

                    </td>,

 <td class="TableHeadingRight" width="55">

                        Net R/R

                    </td>,

 <td class="TableHeadingRight" width="75">

                        For

                    </td>,

 <td class="TableHeadingRight" width="75">

                        Against

                    </td>,

 <td align="left">

 <a class="LinkOff" href="MatchList.asp?s=2019&amp;t=MIN">Mumbai Indians</a>

 </td>,

 <td align="right">     

                        14      

                    </td>,

 <td align="right">

                        9       

                    </td>,

 <td align="right">

                        5       

                    </td>,

 <td align="right">

                        0       

                    </td>,

 <td align="right">

                        0       

                    </td>,

 <td align="right">

                        18      

                    </td>,

 <td align="right">

                        +0.421      

                    </td>,

 <td align="right">

                        2380/275.1      

                    </td>,

 <td align="right">

                        2282/277.2      

                    </td>,

 <td align="left">


HUWWW
浏览 82回答 3
3回答

慕婉清6462132

有一种简单的方法可以从列表列表创建数据框。代码 :ll = []for data in table_data.find_all('td'):&nbsp; &nbsp; ll.append(''.join(data.text.split()))&nbsp;&nbsp;n = 10final = [ll[i:i + n] for i in range(0, len(ll), n)]col = final [0]df = pd.DataFrame(final)&nbsp;df.columns = df.iloc[0]df = df.drop(df.index[0])dfll是表数据中的列表的列表。final正如您在列中提到的那样,将其分为ll10 列最后两行是将第一行作为列名,因为我们刚刚创建了一个数据框而没有给出任何列名。

慕丝7291255

将表数据设置为一维列表后table_data_list&nbsp;=&nbsp;[''.join(i.text.split()&nbsp;for&nbsp;i&nbsp;in&nbsp;table_data.find_all('td')]使用 numpy reshape 将数据转换为 2Ddf&nbsp;=&nbsp;pd.DataFrame(np.array(table_data_list).reshape(-1,10))

GCT1015

使用pd.concatimport pandas as pd&nbsp;col_name = ['Team','Mat','Won','Lost','Tied','N/R','Points','NetR/R','For','Against']# Main dataframedf = pd.DataFrame(data=None, columns=col_name)# df1 is the data frame that you want to concat in your original data framedf = pd.concat([df, df1])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python