在Pandas Dataframe中转换HTML表

z2acfund  于 2024-01-04  发布在  其他
关注(0)|答案(4)|浏览(123)

我正在阅读一个带有pd.read_html的HTML表,但结果是以列表的形式出现的,我想将其转换为一个pandas字符串,这样我就可以继续对同一个字符串进行进一步的操作。我使用以下脚本

  1. import pandas as pd
  2. import html5lib
  3. data=pd.read_html('http://www.espn.com/nhl/statistics/player/_/stat/points/sort/points/year/2015/seasontype/2',skiprows=1)

字符串
由于我的结果是1列表,我试图将其转换为一个 Dataframe ,

  1. data1=pd.DataFrame(Data)


结果为0

  1. 0 0 1 2 3 4...


由于结果是一个列表,我不能应用任何功能,如重命名,dropna,drop。
我将感激每一个帮助

2o7dmzc5

2o7dmzc51#

我认为如果需要选择列表的第一项,需要添加[0],因为read_html返回list of DataFrames
所以你可以用途:

  1. import pandas as pd
  2. data1 = pd.read_html('http://www.espn.com/nhl/statis‌​tics/player/‌​_/stat/point‌​s/sort/point‌​s/year/2015&‌​#47;seasontype/2‌​',skiprows=1)[0]

个字符

atmip9wb

atmip9wb2#

如果你的框架最后的列索引为0,1,2等,标题在第一行,(如上所述)只要指定列名在第一行,header=0
如果没有这个,pandas可能会看到混合的数据类型-第1行是文本,其余的是数字,并将列转换为对象,而不是int 64。
整条线将是:

  1. data1 = pd.read_html(url, skiprows=1, header=0)[0]

字符串
[0]是可能表列表中的第一个表。
也有处理NA值的选项。在这里查看文档:https://pandas.pydata.org/docs/reference/api/pandas.read_html.html

yizd12fk

yizd12fk3#

我注意到列表中的DataFrames都是您试图分析的同一个表/数据集的一部分,因此与其将它们拆分然后合并在一起,更好的解决方案是联系DataFrames列表。
看看这段代码的结果:

  1. df = pd.concat(pd.read_html('https://www.espn.com/nhl/stats/player/_/view/goaltending'),axis=1)

字符串
产出:
第一个月

  1. index RK Name POS GP W L OTL GA/G SA GA SV SV% SO TOI PIM SOSA SOS SOS%
  2. 0 1 Igor ShesterkinNYR G 53 36 13 4 2.07 1622 106 1516 0.935 6 3070:32 2 28 20 0.714

iovurdzv

iovurdzv4#

进口Pandas作PD

指定Excel文件路径

html_file_path = 'html的路径'

将Excel文件读入DataFrame

pdf = pd.read_html(html_file_path)

显示DataFrame

打印(df)

展开查看全部

相关问题