我正在读取一个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错误
答案 0 :(得分:1)
df.rename(columns={0:'Sales', 1:'Sales % of Total'}, inplace=True)
有关详细信息,请参见下面的图片。
答案 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?