【发布时间】:2015-07-20 23:43:39
【问题描述】:
我有一个 Pandas 数据框如下:
In [10]: libor_table
Out[10]:
Euribor interest rate - 3 months Euribor interest rate - 6 months \
2015-07-17 -0.019% 0.049%
2015-07-16 -0.019% 0.049%
2015-07-15 -0.019% 0.049%
2015-07-14 -0.019% 0.049%
2015-07-13 -0.019% 0.049%
GBP LIBOR - 3 months GBP LIBOR - 6 months USD LIBOR - 3 months \
2015-07-17 0.58375% 0.75406% 0.29175%
2015-07-16 0.58438% 0.75313% 0.28700%
2015-07-15 0.58406% 0.75063% 0.28850%
2015-07-14 0.58219% 0.74250% 0.28850%
2015-07-13 0.58188% 0.73750% 0.28880%
USD LIBOR - 6 months
2015-07-17 0.46020%
2015-07-16 0.45570%
2015-07-15 0.46195%
2015-07-14 0.46345%
2015-07-13 0.46340%
索引在日期时间:
In [11]: libor_table.index
Out[11]:
DatetimeIndex(['2015-07-17', '2015-07-16', '2015-07-15', '2015-07-14',
'2015-07-13'],
dtype='datetime64[ns]', freq=None, tz=None)
我的问题是当我使用to_html() 将表格制作成 HTML 表格时。标准数据框可以很好地转换为 HTML 表格:
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>Euribor interest rate - 3 months</th>
<th>Euribor interest rate - 6 months</th>
<th>GBP LIBOR - 3 months</th>
<th>GBP LIBOR - 6 months</th>
<th>USD LIBOR - 3 months</th>
<th>USD LIBOR - 6 months</th>
</tr>
</thead>
<tbody>
<tr>
<th>2015-07-17</th>
<td>-0.019%</td>
<td>0.049%</td>
<td>0.58375%</td>
<td>0.75406%</td>
<td>0.29175%</td>
<td>0.46020%</td>
</tr>
<tr>
<th>2015-07-16</th>
<td>-0.019%</td>
<td>0.049%</td>
<td>0.58438%</td>
<td>0.75313%</td>
<td>0.28700%</td>
<td>0.45570%</td>
</tr>
<tr>
<th>2015-07-15</th>
<td>-0.019%</td>
<td>0.049%</td>
<td>0.58406%</td>
<td>0.75063%</td>
<td>0.28850%</td>
<td>0.46195%</td>
</tr>
<tr>
<th>2015-07-14</th>
<td>-0.019%</td>
<td>0.049%</td>
<td>0.58219%</td>
<td>0.74250%</td>
<td>0.28850%</td>
<td>0.46345%</td>
</tr>
<tr>
<th>2015-07-13</th>
<td>-0.019%</td>
<td>0.049%</td>
<td>0.58188%</td>
<td>0.73750%</td>
<td>0.28880%</td>
<td>0.46340%</td>
</tr>
</tbody>
</table>
但是我想转置 HTML 输出的数据框 - libor_table.transpose().to_html(),当我这样做时,pandas 会将时间添加到列标题,如下所示:
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>2015-07-17 00:00:00</th>
<th>2015-07-16 00:00:00</th>
<th>2015-07-15 00:00:00</th>
<th>2015-07-14 00:00:00</th>
<th>2015-07-13 00:00:00</th>
</tr>
</thead>
<tbody>
<tr>
<th>Euribor interest rate - 3 months</th>
<td>-0.019%</td>
<td>-0.019%</td>
<td>-0.019%</td>
<td>-0.019%</td>
<td>-0.019%</td>
</tr>
<tr>
<th>Euribor interest rate - 6 months</th>
<td>0.049%</td>
<td>0.049%</td>
<td>0.049%</td>
<td>0.049%</td>
<td>0.049%</td>
</tr>
<tr>
<th>GBP LIBOR - 3 months</th>
<td>0.58375%</td>
<td>0.58438%</td>
<td>0.58406%</td>
<td>0.58219%</td>
<td>0.58188%</td>
</tr>
<tr>
<th>GBP LIBOR - 6 months</th>
<td>0.75406%</td>
<td>0.75313%</td>
<td>0.75063%</td>
<td>0.74250%</td>
<td>0.73750%</td>
</tr>
<tr>
<th>USD LIBOR - 3 months</th>
<td>0.29175%</td>
<td>0.28700%</td>
<td>0.28850%</td>
<td>0.28850%</td>
<td>0.28880%</td>
</tr>
<tr>
<th>USD LIBOR - 6 months</th>
<td>0.46020%</td>
<td>0.45570%</td>
<td>0.46195%</td>
<td>0.46345%</td>
<td>0.46340%</td>
</tr>
</tbody>
</table>
Pandas 为什么这样做,有没有办法阻止它?
编辑:此错误已提交here。
【问题讨论】:
-
不知道为什么会这样,但以下对我来说是一种解决方法:
libor_table.index = libor_table.index.date libor_table.T.to_html()值得作为问题发布:github.com/pydata/pandas/issues -
成功了,谢谢。我以前从未在 github 上发布过问题 - 多么令人兴奋。
-
如果您确实发布了问题,您能否编辑您的问题并附上问题的链接,谢谢
-
我在这里发布了这个问题 - github.com/pydata/pandas/issues/10640 - 如果我需要更改任何内容,请告诉我,我以前从未这样做过。
-
对我来说看起来不错,您应该很快就会得到回复,我发现熊猫开发人员的回复非常快