如何使用包含特殊字符的名称重命名pandas数据框?

时间:2019-07-18 22:14:26

标签: python python-3.x pandas

我正在读取一个excel文件,并将内容转储到pandas数据框中。我正在使用sqlalchemy将整个数据框上传到MySQL数据库。

在功能上一切正常,但是当我尝试上载包含%符号的Excel文档时遇到了一个问题。

我的一个函数使用row [0]重命名数据帧的标头,删除row [0],然后重新索引。

当我尝试读取此数据帧时,会引发错误,指出存在非法的十六进制字符(%),这是正确的。

我不想修改此列名,因为它是我上载的excel文件中出现的方式,并且数据库希望它保持不变。

如何获取熊猫数据框以接受列名称中的特殊(%)字符?例如“销售占总数的百分比”

example data:
         [0]           [1]
    [0] Sales | Sales % of Total
    [1] $100  |        50%

dataframe.rename(columns=dataframe.iloc[0]).drop(dataframe.index[0]).reset_index(drop=True)

expected output:
       [Sales]  [Sales % of Total]
    [0] $100  |        50%

抛出错误:

URLDecover:转义(%)模式中的非法十六进制字符-索引0错误

2 个答案:

答案 0 :(得分:1)

尝试执行此操作(将“ df”替换为您称为数据框的任何内容:

df.rename(columns={0:'Sales', 1:'Sales % of Total'}, inplace=True)

有关详细信息,请参见下面的图片。

enter image description here

答案 1 :(得分:0)

您也可以简单地使用

df.columns = ['Sales','Sales % of Total']

根据需要定义列名称。

您还可以在阅读excel文件时考虑使用此技巧,以避免重命名标头,删除和重新编制索引的步骤。

Python pandas, How could I read excel file without column label and then insert column label?