pandas-read_excel 语法错误 [重复]

Posted

技术标签:

【中文标题】pandas-read_excel 语法错误 [重复]【英文标题】:pandas-read_excel syntax error [duplicate] 【发布时间】:2018-11-25 16:58:52 【问题描述】:

我试图从 Excel 电子表格的第二张表中读取一些数据。跳过前 18 行,只跳过 C 到 F 列。这是我尝试过的

import pandas as pd

new_file=pd.read_excel("C:\Users\denis\Documents\Dissertation\Raw Data\CO\1213Q1.xls",sheetname=1, skiprows=18, parse_cols=[2,5]) 

当我运行它时,我得到以下错误

runfile('C:/Users/denis/Documents/Dissertation/Code/test.py', wdir='C:/Users/denis/Documents/Dissertation/Code')
  File "C:/Users/denis/Documents/Dissertation/Code/test.py", line 9
    new_file=pd.read_excel("C:\Users\denis\Documents\Dissertation\Raw Data\CO\1213Q1.xls",sheetname=1, skiprows=18, parse_cols=[2,5])
                          ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

有人知道是什么原因造成的吗?

【问题讨论】:

this 能解决您的问题吗?可能您需要在文件名之前添加rpd.read_excel(r"C:\Users\denis\Documents\Dissertation\Raw Data\CO\1213Q1.xls",..) 它很简单。谢谢 【参考方案1】:

您要么必须转义反斜杠,要么在前面使用r 来表示原始字符串,即

new_file=pd.read_excel(r"C:\Users\denis\Documents\Dissertation\Raw Data\CO\1213Q1.xls",sheetname=1, skiprows=18, parse_cols=[2,5]))

new_file=pd.read_excel("C:\\Users\\denis\\Documents\\Dissertation\\Raw Data\\CO\\1213Q1.xls",sheetname=1, skiprows=18, parse_cols=[2,5]))

【讨论】:

【参考方案2】:

看看这个问题:"Unicode Error "unicodeescape" codec can't decode bytes... Cannot open text files in Python 3

我建议不要将str 作为第一个参数传递,而是让pathlib.Path 为您处理。此外,docs 指定 sheetnameparse_cols 已弃用,skiprows 应类似于列表。

from pathlib import Path
import pandas as pd

p = Path('C:\Users\denis\Documents\Dissertation\Raw Data\CO\1213Q1.xls')
df = pd.read_excel(
    p, 
    sheet_name=1, 
    skiprows=list(range(18)), # skip first 18 rows (0-indexed)
    parse_cols=list(range(2, 6)) # only parse columns 2 (C) to 5 (F)
)

【讨论】:

以上是关于pandas-read_excel 语法错误 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

尝试重定向我的python脚本的输出时出现语法错误[关闭]

Django 2.0.7 - 进行重命名字段迁移时出现语法错误

OpenGL的gl.h出现一堆错误,如重定义什么的

LINUX 标准错误输出重定向

php: 警告:重命名文件名、目录名或卷标语法不正确。 (代码:123)

htaccess 永久重定向引发内部服务器错误