python - Pandas 列的别名

标签 python pandas

我有一个数据框:

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})

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

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

最佳答案

列名的别名是 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>

关于python - Pandas 列的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46096307/

相关文章:

Python正则表达式计算数字、字母出现的次数

python - Python 在不同平台上处理 Unicode 的方式有什么不同吗?

python - 如何将列表转换为pandas DataFrame?

python - 删除 pandas 中多索引数据框中的重复项

python - Pandas 遍历数据框中的列以获取自定义 MySQL 插入字符串

python - MySQL `Load Data Infile Local` 对于 .csv 失败,除非我先打开并保存该文件。我怎样才能避免这一步?

python - df.join() : ValueError: You are trying to merge on object and int64 columns 出现问题

python - Ubuntu 中的 pip 版本不同

python - 概括添加嵌套列表

python - 连接/处理脚本到 PySimpleGUI 按钮