当pandas读取具有空白顶行和左列的Excel文件时出现问题

时间:2016-10-13 16:10:51

标签: python python-3.x pandas

我试图读取如下所示的Excel文件, enter image description here

我正在使用像这样的熊猫

xls = pd.ExcelFile(file_path)
assets = xls.parse(sheetname="Sheet1", header=1, index_col=1)

但我收到了错误

  

ValueError:第3行预计有4个字段,见5

我也试过

assets = xls.parse(sheetname="Sheet1", header=1, index_col=1, parse_cols="B:E")

但是我得到了如下错误的结果

enter image description here

然后尝试了

assets = xls.parse(sheetname="Sheet1", header=1, index_col=0, parse_cols="B:E")

最后有效,但为什么index_col = 0和parse_cols =“B:E”?这让我感到困惑,因为基于大熊猫documentsassets = xls.parse(sheetname="Sheet1", header=1, index_col=1)应该没问题。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

read_excel documentation并不清楚。

  • skiprows=1跳过文件顶部的第一个空行,或header=1也可以使用第二行有列索引。
  • parse_cols='B:E'是一种跳过文件左侧第一个空列的方法
  • index_col=0是可选的,允许将第一个已解析的列(在此示例中为B)定义为DataFrame索引。错误在于此处,因为index_col相对于通过parse_cols参数选择的列。

使用您的示例,您可以使用以下代码

pd.read_excel('test.xls', sheetname='Sheet1', skiprows=1, 
              parse_cols='B:E', index_col=0)

#           AA  BB  CC
# 10/13/16   1  12  -1
# 10/14/16   3  12  -2
# 10/15/16   5  12  -3
# 10/16/16   3  12  -4
# 10/17/16   5  23  -5