• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

  • 共95篇

    python3.X - 数据分析 - Pandas

关闭

返回栏目

关闭

返回python3.X - 数据分析 - Pandas栏目

17 - 导入数据 - pd.read_html(url) - 解析URL或HTML

作者:

贺及楼

成为作者

更新日期:2024-08-06 07:35:21

read_html()

表格总结

例子编号 描述 代码示例
1 读取 HTML 文件中的所有表格 pd.read_html('path_to_file.html')
2 选择特定表格 print(dfs[1])
3 读取网页中的所有表格 pd.read_html('http://example.com')
4 使用正则表达式匹配表格 pd.read_html(..., match='table_id')
5 读取 HTML 字符串中的表格 pd.read_html(html_string)
6 设置解析器风味 pd.read_html(..., flavor='lxml')
7 忽略默认 NA 值 pd.read_html(..., keep_default_na=False)
8 指定列为索引 pd.read_html(..., index_col=0)
9 转换列数据类型 dtypes = {'Column2': float}; pd.read_html(..., dtype=dtypes)
10 分块读取大型 HTML for chunk in pd.read_html(..., chunksize=chunk_size):
11 指定元素来取得 dfs1 = pd.read_html(url, attrs={'id': 'table'})

1: 读取 HTML 文件中的所有表格

  • 描述:加载一个 HTML 文件并提取其中所有的表格。
  • 代码
    1. import pandas as pd
    2. dfs = pd.read_html('path_to_file.html')
    3. print(dfs[0]) # 打印第一个表格

2: 通过索引选择特定的表格

  • 描述:在提取的所有表格中选择特定的表格。
  • 代码
    1. print(dfs[1]) # 打印第二个表格

3: 读取网页中的所有表格

  • 描述:从网页 URL 中提取所有表格。
  • 代码
    1. dfs = pd.read_html('http://example.com')
    2. print(dfs[0]) # 打印第一个表格

4: 使用正则表达式匹配表格

  • 描述:使用正则表达式匹配并提取特定的表格。
  • 代码
    1. dfs = pd.read_html('path_to_file.html', match='table_id')
    2. print(dfs[0]) # 打印匹配的表格

5: 读取 HTML 字符串中的表格

  • 描述:从 HTML 格式的字符串中提取表格。
  • 代码
    1. html_string = "<html><body><table>...</table></body></html>"
    2. dfs = pd.read_html(html_string)
    3. print(dfs[0]) # 打印第一个表格

6: 设置表格解析的风味(Flavor)

  • 描述:使用不同的解析器风味来提取表格。
  • 代码
    1. dfs = pd.read_html('path_to_file.html', flavor='lxml')
    2. print(dfs[0]) # 打印第一个表格

7: 忽略表格中的默认 NA 值

  • 描述:读取表格时忽略默认的 NA 值。
  • 代码
    1. dfs = pd.read_html('path_to_file.html', keep_default_na=False)
    2. print(dfs[0]) # 打印第一个表格

8: 指定列作为 DataFrame 的索引

  • 描述:将表格中的某一列设置为 DataFrame 的索引。
  • 代码
    1. dfs = pd.read_html('path_to_file.html', index_col=0)
    2. print(dfs[0]) # 打印第一个表格,第一列作为索引

9: 转换表格数据的类型

  • 描述:在读取表格时转换特定列的数据类型。
  • 代码
    1. dtypes = {'Column2': float}
    2. dfs = pd.read_html('path_to_file.html', dtype=dtypes)
    3. print(dfs[0]) # 打印第一个表格,'Column2' 转换为 float 类型

10: 使用 chunksize 分块读取大型 HTML

  • 描述:使用 chunksize 分块读取大型 HTML 文件中的表格。
  • 代码
    1. chunk_size = 3 # 每块包含 3 个表格
    2. for chunk in pd.read_html('path_to_file.html', chunksize=chunk_size):
    3. print(chunk) # 打印每个块中的表格

11: 指定元素来取得

  1. import numpy as np
  2. import pandas as pd
  3. dfs = pd.read_html('https://www.gairuo.com/p/pandas-io')
  4. dfs[0] # 查看第一个 df
  5. dfs = pd.read_html('data.html', header=0) # 读取网页文件,第一行为表头
  6. dfs = pd.read_html(url, index_col=0) # 第一列为索引
  7. ## 如果一个网页表格很多,可以指定元素来取得:
  8. dfs1 = pd.read_html(url, attrs={'id': 'table'}) # id='table' 的表格,注意这儿仍然可能返回多个
  9. ## dfs1[0]
  10. dfs2 = pd.read_html(url, attrs={'class': 'sortable'}) # class='sortable'