【问题标题】:How to skip first few rows of text while importing csv with pandas?如何在使用熊猫导入 csv 时跳过前几行文本?
【发布时间】:2018-06-14 03:32:27
【问题描述】:

我们每天都会从供应商处收到一个 csv 文件。 但是,格式是这样的:

<table>
  <tr>
    <th colspan="6">#Receiver</th>
  </tr>
  <tr>
    <td colspan="6">#DateTime</td>
  </tr>
  <tr>
    <td colspan="6">#Address</td>
  </tr>
  <tr>
    <td colspan="6"></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td>Col1</td>
    <td>Col2</td>
    <td>Col3</td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td>1</td>
    <td>A</td>
    <td>3</td>
    <td>10%</td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td>2</td>
    <td>B</td>
    <td>3</td>
    <td>20%</td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td>3</td>
    <td>C</td>
    <td>2</td>
    <td>10%</td>
  </tr>
</table>

我需要使用 pandas 来读取从第 5 行和第 3 列开始的表格。 我怎么能跳过前几行?

谢谢。

【问题讨论】:

  • 这不是 csv。 csv 文件代表逗号分隔值
  • 这里没有用html演示表格。我只是想举个例子。

标签: python pandas csv data-analysis data-cleaning


【解决方案1】:

以下代码将对您有所帮助

import pandas as pd

html_text = '''<table>
  <tr>
    <th colspan="6">#Receiver</th>
  </tr>
  <tr>
    <td colspan="6">#DateTime</td>
  </tr>
  <tr>
    <td colspan="6">#Address</td>
  </tr>
  <tr>
    <td colspan="6"></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td>Col1</td>
    <td>Col2</td>
    <td>Col3</td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td>1</td>
    <td>A</td>
    <td>3</td>
    <td>10%</td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td>2</td>
    <td>B</td>
    <td>3</td>
    <td>20%</td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td>3</td>
    <td>C</td>
    <td>2</td>
    <td>10%</td>
  </tr>
</table>'''
ROWS_YOU_WANT_TO_SKIP=3
df = pd.read_html(html_text, skiprows = ROWS_YOU_WANT_TO_SKIP)
df.head()

所以,您只需根据要忽略的行数为 skiprows 指定一个值

【讨论】:

  • @DataHolic,太好了。如果它是您正在寻找的答案,请将其标记为已回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-28
  • 1970-01-01
  • 2018-11-09
  • 2023-03-13
  • 1970-01-01
  • 2020-02-10
  • 1970-01-01
相关资源
最近更新 更多