从Python表中用Python提取一列数据?

时间:2015-04-05 20:36:43

标签: python beautifulsoup html-parsing html-table lxml

我试图为我正在做的一个小项目提取一些NBA数据,我需要提取几个列' (来自上下,垂直)来自HTML表的数据,如this one here。我现在只想尝试获得PTS,那么我该怎么做才能拔出一列数据呢?我已经发现它是每个数据行的最后一个元素,但我不确定如何解析数据。

1 个答案:

答案 0 :(得分:1)

我建议你阅读整个html表,然后选择你需要的列。也许你会在速度上失去一些东西,但你会在简单性方面获得更多。

熊猫很容易做到这一点' read_html函数:

import urllib2
import pandas as pd

page1 = urllib2.urlopen(
    'http://www.basketball-reference.com/players/h/hardeja01/gamelog/2015/').read()

#Select the correct table by some attributes, in this case id=pgl_basic.
#The read_html function returns a list of tables.
#In this case we select the first (and only) table with this id
stat_table = pd.io.html.read_html(page1,attrs={'id':'pgl_basic'})[0]

#Just select the column we needed. 
point_column = stat_table['PTS']

print point_column

如果您不熟悉大熊猫,您可以阅读以下内容: http://pandas-docs.github.io/pandas-docs-travis/10min.html

例如,您可能希望从表中删除标题行或将表拆分为多个表。