熊猫专栏别名

Cri*_*jon 3 python pandas

我有一个数据框:

df = pd.DataFrame({"by_week": list_1, "by_month": list_2})
Run Code Online (Sandbox Code Playgroud)

现在,我需要获取一个html表html = df.to_html(),其中将生成列,例如:

<tr>
  <th></th>
  <th>by_month</th>
  <th>by_week</th>
</tr>
Run Code Online (Sandbox Code Playgroud)

但是我正在寻找更易于理解的标题列,例如:

<tr>
  <th></th>
  <th>Last 7 days</th>
  <th>Last 30 days</th>
</tr>
Run Code Online (Sandbox Code Playgroud)

我有两种解决方案: 选项1

html = html.replace("by_week", "Last 7 days").replace("by_month", "Last 30 days")
Run Code Online (Sandbox Code Playgroud)

但是代码很乱

选项2

df = pd.DataFrame({"Last 7 days": list_1, "Last 30 days": list_2})
Run Code Online (Sandbox Code Playgroud)

但是很难每次都写入/访问特定的列。

所以...是否存在列别名?

Zer*_*ero 6

使用rename

df.rename(columns={"by_week": "Last 7 days", "by_month": "Last 30 days"}).to_html()


jez*_*ael 5

目前尚不支持列名别名。

我认为您可以通过dict以下方式重命名列:

list_1 = [1,2]
list_2 = [5,7]

d = {"by_week": "Last 7 days", "by_month": "Last 30 days"}
df = pd.DataFrame({"by_week": list_1, "by_month": list_2}).rename(columns=d)
print (df)
   Last 30 days  Last 7 days
0             5            1
1             7            2
Run Code Online (Sandbox Code Playgroud)
df = pd.DataFrame({"by_week": list_1, "by_month": list_2}).rename(columns=d).to_html()
print (df)
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>Last 30 days</th>
      <th>Last 7 days</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>5</td>
      <td>1</td>
    </tr>
    <tr>
      <th>1</th>
      <td>7</td>
      <td>2</td>
    </tr>
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)