python - Pandas 删除索引列上方单元格中的数字

标签 python pandas

我有一个 Pandas 数据框,经过一些清理后看起来像这样。

In [363]: treasury_yields_df
Out[363]:
1           1 mo  3 mo  6 mo  1 yr  2 yr  3 yr  5 yr  7 yr 10 yr 20 yr 30 yr
Date
2015-07-01  0.01  0.01  0.13  0.28  0.69  1.08  1.70  2.14  2.43  2.92  3.20
2015-07-02  0.01  0.01  0.10  0.26  0.64  1.01  1.64  2.09  2.40  2.90  3.19
2015-07-06  0.01  0.02  0.09  0.26  0.60  0.95  1.56  2.00  2.30  2.78  3.08
2015-07-07  0.02  0.02  0.08  0.25  0.58  0.96  1.55  1.98  2.27  2.74  3.04
2015-07-08  0.02  0.02  0.08  0.24  0.55  0.91  1.50  1.92  2.22  2.69  2.99
2015-07-09  0.02  0.03  0.08  0.25  0.60  0.95  1.58  2.01  2.32  2.80  3.11
2015-07-10  0.01  0.01  0.09  0.28  0.65  1.04  1.68  2.12  2.42  2.91  3.20
2015-07-13  0.02  0.02  0.10  0.28  0.69  1.06  1.71  2.14  2.44  2.92  3.21
2015-07-14  0.03  0.01  0.10  0.27  0.66  1.03  1.67  2.10  2.41  2.90  3.20
2015-07-15  0.03  0.02  0.11  0.28  0.64  1.00  1.63  2.05  2.36  2.83  3.13

我使用此数据框与 pandas to_html 一起打印

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th>1</th>
      <th>1 mo</th>
      <th>3 mo</th>
      <th>6 mo</th>
      <th>1 yr</th>
      <th>2 yr</th>
      <th>3 yr</th>
      <th>5 yr</th>
      <th>7 yr</th>
      <th>10 yr</th>
      <th>20 yr</th>
      <th>30 yr</th>
    </tr>
    <tr>
      <th>Date</th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>2015-07-01</th>
      <td>0.01</td>
      <td>0.01</td>
      <td>0.13</td>
      <td>0.28</td>
      <td>0.69</td>
      <td>1.08</td>
      <td>1.70</td>
      <td>2.14</td>
      <td>2.43</td>
      <td>2.92</td>
      <td>3.20</td>
    </tr>
    <tr>
      <th>2015-07-02</th>
      <td>0.01</td>
      <td>0.01</td>
      <td>0.10</td>
      <td>0.26</td>
      <td>0.64</td>
      <td>1.01</td>
      <td>1.64</td>
      <td>2.09</td>
      <td>2.40</td>
      <td>2.90</td>
      <td>3.19</td>
    </tr>
    <tr>
      <th>2015-07-06</th>
      <td>0.01</td>
      <td>0.02</td>
      <td>0.09</td>
      <td>0.26</td>
      <td>0.60</td>
      <td>0.95</td>
      <td>1.56</td>
      <td>2.00</td>
      <td>2.30</td>
      <td>2.78</td>
      <td>3.08</td>
    </tr>
    <tr>
      <th>2015-07-07</th>
      <td>0.02</td>
      <td>0.02</td>
      <td>0.08</td>
      <td>0.25</td>
      <td>0.58</td>
      <td>0.96</td>
      <td>1.55</td>
      <td>1.98</td>
      <td>2.27</td>
      <td>2.74</td>
      <td>3.04</td>
    </tr>
    <tr>
      <th>2015-07-08</th>
      <td>0.02</td>
      <td>0.02</td>
      <td>0.08</td>
      <td>0.24</td>
      <td>0.55</td>
      <td>0.91</td>
      <td>1.50</td>
      <td>1.92</td>
      <td>2.22</td>
      <td>2.69</td>
      <td>2.99</td>
    </tr>
    <tr>
      <th>2015-07-09</th>
      <td>0.02</td>
      <td>0.03</td>
      <td>0.08</td>
      <td>0.25</td>
      <td>0.60</td>
      <td>0.95</td>
      <td>1.58</td>
      <td>2.01</td>
      <td>2.32</td>
      <td>2.80</td>
      <td>3.11</td>
    </tr>
    <tr>
      <th>2015-07-10</th>
      <td>0.01</td>
      <td>0.01</td>
      <td>0.09</td>
      <td>0.28</td>
      <td>0.65</td>
      <td>1.04</td>
      <td>1.68</td>
      <td>2.12</td>
      <td>2.42</td>
      <td>2.91</td>
      <td>3.20</td>
    </tr>
    <tr>
      <th>2015-07-13</th>
      <td>0.02</td>
      <td>0.02</td>
      <td>0.10</td>
      <td>0.28</td>
      <td>0.69</td>
      <td>1.06</td>
      <td>1.71</td>
      <td>2.14</td>
      <td>2.44</td>
      <td>2.92</td>
      <td>3.21</td>
    </tr>
    <tr>
      <th>2015-07-14</th>
      <td>0.03</td>
      <td>0.01</td>
      <td>0.10</td>
      <td>0.27</td>
      <td>0.66</td>
      <td>1.03</td>
      <td>1.67</td>
      <td>2.10</td>
      <td>2.41</td>
      <td>2.90</td>
      <td>3.20</td>
    </tr>
    <tr>
      <th>2015-07-15</th>
      <td>0.03</td>
      <td>0.02</td>
      <td>0.11</td>
      <td>0.28</td>
      <td>0.64</td>
      <td>1.00</td>
      <td>1.63</td>
      <td>2.05</td>
      <td>2.36</td>
      <td>2.83</td>
      <td>3.13</td>
    </tr>
  </tbody>
</table>

我的问题是,我不希望索引列标题上方有“1”,而且我不知道如何访问该值来删除它。

理想情况下,我非常希望索引标题与 HTML 输出中的其他列标题保持一致,尽管这不是绝对必要的。

最佳答案

索引和列是Index类型,它们有一个name属性,这就是您所看到的。

要删除 1,只需为其分配 None:

df.columns.name = None

关于python - Pandas 删除索引列上方单元格中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31449354/

相关文章:

python - 如何使用 Homebrew 升级到特定的 Python 版本?

python - Python 中用户定义的 croston 函数

python - 如何将行值转换为 Pandas 中的属性(列)

python - 根据最近的日期时间比较值

python - 将随机数据字符串插入新的数据框列

python - 使用 Python 列出在线目录中的所有文件?

python - Python 和 R 词汇表的比较

python - 如何解决 KeyError(f"None of [{key}] are in the [{axis_name}]") 在这种情况下(Pandas)?

python - Pandas 图中单行的访问和更改特征

Python 字符串拆分为多个字符