Pandas - 在执行to_html时,index_col的read_html不是意图输出

时间:2017-07-17 14:38:52

标签: python pandas

我可能完全不理解pandas,但是当使用read_html并设置index_col标志,修改数据框,然后再次尝试使用to_html时,我会遇到一些意想不到的行为。

这就是我的意思。我有这个html文件:

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th>index</th>
      <th>Avg</th>
      <th>Min</th>
      <th>Max</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>build1</td>
      <td>55.102323</td>
      <td>37.101219</td>
      <td>60.7</td>
    </tr>
  </tbody>
</table>

然后我使用pandas read_html如下:

dataFrameList = pd.read_html('empty.html', index_col=0)
df = dataFrameList[0]

这将生成如下数据框:

              Avg        Min   Max
index                             
build1  55.102323  37.101219  60.7

然后我有一小段测试代码如下:

df.drop(['build1'], inplace=True)
df.loc['build2'] = [121212, 12443, 1290120]
print(df.to_html())

我得到以下输出:

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>Avg</th>
      <th>Min</th>
      <th>Max</th>
    </tr>
    <tr>
      <th>index</th>
      <th></th>
      <th></th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>build2</th>
      <td>121212.0</td>
      <td>12443.0</td>
      <td>1290120.0</td>
    </tr>
  </tbody>
</table>

我做错了什么?我试图设置to_html标志index = False off,但这摆脱了构建名称(我需要)。

我想要的输出(只是为了清楚)如下:

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th>index</th>
      <th>Avg</th>
      <th>Min</th>
      <th>Max</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>build2</th>
      <td>121212.0</td>
      <td>12443.0</td>
      <td>1290120.0</td>
    </tr>
  </tbody>
</table>

1 个答案:

答案 0 :(得分:0)

有一种解决方法:

df.insert(0, 'index', df.index)
print(df.to_html(index=False))

这会产生所需的输出(第二行中的<th>除外,我想这是一个错字?)。