我试图从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
有谁知道造成这种情况的原因是什么?
答案 0 :(得分:2)
你要么必须逃避反斜杠,要么使用前面的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]))
答案 1 :(得分:1)
看看这个问题:"Unicode Error "unicodeescape" codec can't decode bytes... Cannot open text files in Python 3
我建议不要将str
作为第一个参数传递,而是让pathlib.Path
为您处理。此外,docs指定sheetname
和parse_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)
)