我有一个数据框:
df = pd.DataFrame({"by_week": list_1, "by_month": list_2})
现在我需要获取一个html表html = df.to_html()
,其中的列生成如下:
<tr>
<th></th>
<th>by_month</th>
<th>by_week</th>
</tr>
但我正在寻找更像人类可读的标题栏:
<tr>
<th></th>
<th>Last 7 days</th>
<th>Last 30 days</th>
</tr>
我有两种方法可以解决它: 选项1
html = html.replace("by_week", "Last 7 days").replace("by_month", "Last 30 days")
但代码很乱
选项2
df = pd.DataFrame({"Last 7 days": list_1, "Last 30 days": list_2})
但每次都很难写/访问特定的列。
so ...是否存在列的别名?
答案 0 :(得分:3)
列名称的别名为not supported yet。
我认为您可以按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
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>
答案 1 :(得分:1)
使用rename
df.rename(columns={"by_week": "Last 7 days", "by_month": "Last 30 days"}).to_html()